Tôi làm cách nào để gọi các chức năng iOS không công khai và truy cập các tính năng không công khai từ Swift? Cụ thể, tôi muốn sử dụng một lớp không công khai trong khung công tác QuartzCore. Một giải pháp mà tôi nghĩ đến là tạo dự án Objective-C "bắc cầu" để bọc các API ngoài công lập này vào các API công khai và gọi các hàm Objective-C này từ Swift. Tuy nhiên, giải pháp của tôi là Swift thuần túy và tôi muốn giữ nó theo cách đó. Có cách nào khác hơn không? (ví dụ: thêm một cái gì đó vào Objective-C bridging header file)Cách truy cập API riêng tư của iOS trong Swift?
Lưu ý: Tôi biết bạn đang nghĩ gì, các API riêng tư là riêng tư vì chúng không nên được sử dụng. Tôi biết những rủi ro, tôi nhận thức được tất cả các donwsides, hạn chế cửa hàng ứng dụng vv. Sau khi xem xét cẩn thận và rất nhiều nghiên cứu, nó unfortunatelly vẫn có vẻ là cách tốt nhất để đi trong trường hợp cụ thể này.
Nếu bạn thêm đúng việc kê khai của những phương pháp riêng để một tiêu đề thu hẹp tệp, như thể chúng nằm trong một danh mục (có tên là 'PrivateButImmaUseTheseAnyway'), có hoạt động không? –
@TheParamagneticCroissant Tôi không chắc chắn rằng tôi hiểu ý bạn là gì. Tôi không biết liệu có thể khai báo chỉ một phương thức trong tệp tiêu đề bắc cầu hay không. Tôi đã cố gắng khai báo toàn bộ lớp riêng tư - tôi có một lỗi biên dịch nói rằng lớp không tồn tại nhưng có lẽ tôi đã không làm điều đó một cách chính xác. – drasto
Ý tôi là, bạn khai báo lớp riêng cùng với một thể loại, như sau: '@interface NSPrivateClass (PrivateStuff)', và thêm khai báo các phương thức riêng ở đó. –