tôi muốn đặt nó theo cách khác xung quanh: bạn có thể mạo hiểm overcomplicating cái gì đó là ridiculously :-) đơn giản
Ok, tôi là một chút lém lỉnh. Như những người khác đang chỉ ra, Objective-C thực sự chỉ là một bộ mở rộng ngôn ngữ tối thiểu cho C. Khi bạn đang viết mã Objective-C, bạn đang thực sự viết C. Bạn thậm chí có thể truy cập các machinations bên trong của hỗ trợ thời gian chạy Objective-C sử dụng một số chức năng C tiện dụng là một phần của ngôn ngữ (không ... Tôi không khuyên bạn thực sự làm điều này trừ khi bạn thực sự biết những gì bạn đang làm).
Giới thiệu về thời gian duy nhất tôi từng có những khoảnh khắc nhẹ nhàng khó khăn là khi tôi muốn chuyển một phương thức thể hiện Objective-C làm gọi lại cho hàm C. Nói, ví dụ, tôi đang sử dụng một thư viện nền tảng cross-C có chức năng chấp nhận gọi lại. Tôi có thể gọi hàm từ bên trong một thể hiện đối tượng để xử lý một số dữ liệu, và sau đó muốn hàm C gọi hàm BACK của tôi khi nó được thực hiện, hoặc như là một phần của đầu vào bổ sung v.v. (một mô hình phổ biến trong C). Điều này có thể được thực hiện với gói chức năng funky, và một số phương pháp sáng tạo khác mà tôi đã thấy, và nếu bạn cần phải làm điều đó googling "mục tiêu c phương pháp cho c gọi lại" hoặc một cái gì đó như thế sẽ cung cấp cho bạn hàng hoá.
Lời khuyên duy nhất khác là đảm bảo rằng các đối tượng của bạn quản lý phù hợp bất kỳ bộ nhớ ed nào do họ tạo để sử dụng bởi các hàm C theo cách thủ công. Bạn sẽ muốn các lớp target-c của bạn dọn dẹp bộ nhớ đó trên dealloc nếu, thực sự, nó đã kết thúc.
Khác hơn thế, loại bỏ mọi tham chiếu về C và vui chơi!
Nguồn
2009-04-03 19:14:27
Tôi nên viết lại câu hỏi như thế nào? – gargantuan
Nó không phải là vấn đề viết lại. Mục tiêu-C chứa tất cả C, vì vậy không có sự pha trộn nào cả. –
Tôi nhận được bạn, nhưng nhớ tôi mới đến C trong bất kỳ hương vị, và học tập ca cao tập trung vào mục tiêu-C. Tuy nhiên, Chipmunk được viết bằng chữ C. Vì vậy, tôi đã bắt gặp một vấn đề mà Structs không phải là Object, mặc dù với một anh chàng mới, trông giống nhau lúc đầu. – gargantuan