Trong Swift 4.0, Private hiện có thể truy cập được trong phần mở rộng nhưng trong cùng một tệp. Nếu bạn khai báo / xác định tiện ích mở rộng trong tệp khác, thì biến riêng tư của bạn sẽ không thể truy cập được vào tiện ích mở rộng của bạn **
Tệp riêng
tư Truy cập tệp riêng tư hạn chế việc sử dụng thực thể đối với tệp nguồn xác định của chính nó. Sử dụng quyền truy cập riêng tư vào tệp để ẩn chi tiết triển khai của một phần chức năng cụ thể khi các chi tiết đó được sử dụng trong toàn bộ tệp.
Cú pháp: fileprivate <var type> <variable name>
Ví dụ: fileprivate class SomeFilePrivateClass {}
Tin
truy cập tin hạn chế sử dụng của một thực thể để tuyên bố kèm theo, và phần mở rộng đó tuyên bố rằng đang ở trong cùng một tập tin . Sử dụng quyền truy cập riêng để ẩn chi tiết triển khai của một chức năng cụ thể khi các chi tiết đó chỉ được sử dụng trong một khai báo.
Cú pháp: private <var type> <variable name>
Ví dụ: private class SomePrivateClass {}
Dưới đây là chi tiết hơn về tất cả các cấp truy cập: Swift - Cấp độ truy cập
Nhìn vào hình ảnh này:
Tệp: ViewControll.swift
Ở đây cả phần mở rộng và trình điều khiển xem đều nằm trong cùng một tệp, do đó biến riêng tư testPrivateAccessLevel
có thể truy cập được trong phần mở rộng
Tệp: TestFile.swift
Ở đây cả phần mở rộng và trình điều khiển xem đều nằm trong các tệp khác nhau, do đó biến riêng tư testPrivateAccessLevel
không thể truy cập được trong phần mở rộng.
Ở đây lớp ViewController2
là một lớp con của ViewController
và cả hai đều trong cùng một tệp. Ở đây biến riêng tư testPrivateAccessLevel
không thể truy cập được trong Lớp con nhưng fileprivate có thể truy cập được trong lớp con.
private
thànhfileprivate
. Tuy nhiên, nếu bạn có sự sang trọng khi làm nó bằng tay, bạn thường có thể hưởng lợi từ việc rời điprivate
vìprivate
... nếu nó được biên dịch, tất cả đều tốt.