2009-08-02 31 views
5

Vì tôi không thể tìm thấy bất kỳ tài liệu nào về chủ đề này, bạn có thể tạo ra "Lớp" của chính mình không? (các lớp như trong các lớp có thể được sử dụng với CFRetain() và CFRelease) Tôi muốn tận dụng các khả năng đa hình và kiểm tra đối tượng được xây dựng trong Core Foundation mà không có chi phí của Objective-C hoặc tạo phân cấp đối tượng của riêng tôi.Tạo các lớp Core Foundation

Trả lời

4

Hãy cảnh báo trước: Tôi tin rằng Core Foundation không có thừa kế thực sự mà không cần Objective-C nạp, và với Objective-C được tải, bạn sẽ nhận được sự chậm lại liên quan (nhỏ).

Có thể sẽ không có bất kỳ tài liệu nào trên đó, nhưng có thể là có thể. Nó chắc chắn sẽ không được sạch sẽ. Thử duyệt qua số CF-Lite source code (liên kết dành cho Mac OS X 10.5.7) để có được cảm giác về việc triển khai khung công tác.

Lưu ý rằng nếu phí trên của Mục tiêu-C bạn đề cập đến là chi phí của lời gọi thư, có rất nhiều cách để tối ưu hóa nó (ví dụ: phương thức -instanceMethodForSelector:). Bạn có nhiều khả năng dành nhiều thời gian hơn để cố gắng đi sâu vào khung Core Foundation hơn là bạn đang cố gắng tối ưu hóa mã Objective-C để tăng tốc độ.

+1

Cảm ơn. Tôi đã xem xét gói CF-lite và có vẻ như không thể tạo ra các loại CF của riêng bạn mà không sử dụng các chức năng không có giấy tờ/tư nhân: ( Dường như tôi sẽ sử dụng tốt bộ nhớ đệm Obj-C và IMP. –

+0

Nếu bạn thực sự cần, bạn có thể viết các trình bao bọc kiểu C tĩnh cho các đối tượng Objective-C thông qua bộ nhớ đệm 'IMP' và truy cập trực tiếp ivar ... heck, tôi khá chắc chắn rằng trong môi trường không phải GC bạn cũng có thể cuộn phân bổ của riêng mình . –

0

Về mặt kỹ thuật, không có lớp Core Foundation. Chúng là những loại đục.

Các vấn đề liên quan