Tôi có một giao thức riêng định nghĩa trong một tập tin như saukiểm soát truy cập Swift trên giao thức phù hợp
private protocol testProtocol {
func testFunc1()
func testFunc2()
}
Một lớp học nào phù hợp với các giao thức trên như sau
public class testClass : testProtocol {
func testFunc1() {}
func testFunc2() {}
}
Theo tài liệu táo, các thành viên của một lớp công khai có được quyền kiểm soát truy cập nội bộ theo mặc định trừ khi nó được đặt rõ ràng thành một công cụ sửa đổi điều khiển truy cập khác.
Tài liệu cũng cho biết rằng sự phù hợp của loại đối với giao thức có kiểm soát truy cập thấp hơn sẽ làm cho việc triển khai kiểm soát truy cập giao thức của loại giống như của giao thức. Trong trường hợp này vì điều khiển truy cập của loại là công khai và điều khiển truy cập giao thức là riêng tư, các phương thức testfunc1 và testfunc2 sẽ có quyền kiểm soát truy cập riêng tư.
Khi lớp được khởi tạo trong một tập tin nguồn khác nhau và các phương pháp được truy cập như dưới đây, trình biên dịch không hiển thị một lỗi mà không được mong đợi như các phương pháp nên tin theo hướng dẫn
var test: testClass = testClass()
test.testFunc1()
Đây có phải là hành vi mong đợi không? Tui bỏ lỡ điều gì vậy?
Bạn đã tìm thấy một số giải pháp chưa? – ZevsVU