2008-11-21 67 views

Trả lời

3

Mục tiêu C++ được xác định rõ và được hỗ trợ bởi gcc của Apple.

Nhưng bạn không thể kết hợp các lớp C++ và mục tiêu C, điều này khiến cho việc này khá nhanh. Tôi không nghĩ rằng có nhiều dự án trong tự nhiên mà trộn C++ và Objective C đến bất kỳ mức độ nghiêm trọng.

Điều này phụ thuộc vào thư viện của bạn, nhưng nếu (thực tế) khả thi tôi sẽ bọc C++ bên trong thư viện C, sử dụng điểm nhập "C" bên ngoài cho tất cả chức năng thực và liên kết với từ bên trong mã C mục tiêu của bạn ứng dụng iphone của bạn.

4

Mặc dù bạn không thể kết hợp các lớp C++ trong Objective-C, nhưng bạn có thể kết hợp nó với Objective-C++, mà tôi tin rằng cũng được hỗ trợ trong iPhone. Tích hợp mã C++ với một ứng dụng iPhone không phải là một vấn đề, nhưng nếu bạn muốn ở bên an toàn, sau đó bạn nên xây dựng mã của bạn như một thư viện và sau đó liên kết với nó từ ứng dụng iPhone của bạn; theo cách đó, bạn không cần phải lo lắng về việc trộn lẫn mã Obj-C và các lớp C++.

Đối với phê duyệt của Apple, không ai có thể cung cấp cho bạn câu trả lời chính xác về những gì có thể hoặc không đủ điều kiện ứng dụng của bạn để đưa vào cửa hàng, vì Apple đã đóng cửa hoàn toàn về toàn bộ quá trình. Tuy nhiên, bây giờ khá rõ ràng rằng một số loại ứng dụng nhất định sẽ không thực hiện việc cắt giảm; cụ thể là:

  • Ứng dụng "lạm dụng" hoặc biến iPhone SDK theo cách mà Apple không thích. IE, thiết lập độ sáng của thiết bị
  • Sử dụng quá nhiều băng thông hoặc tài nguyên hệ thống (thoát tuổi thọ pin không cần thiết)
  • nhân đôi chức năng của Apple ở đâu đó (ví dụ, làm cho một mail client, trình duyệt web, vv)
  • Lợi dụng danh nghĩa các mức giá và sơ đồ định giá

Thực ra, tốt hơn là chỉ google ví dụ về các ứng dụng bị cấm để có cảm giác tốt hơn về nó. Nhưng dòng dưới cùng là, nó không phải là cách ứng dụng của bạn làm điều gì đó, đó là những gì ứng dụng của bạn đang thực hiện sẽ dẫn đến việc ứng dụng bị cấm.

+0

"sao chép chức năng của Apple ở đâu đó", thật buồn cười vì không có nhiều lứa tuổi trước đây, có vấn đề là các nhà cung cấp trình duyệt không quá hài lòng với IE có độc quyền trên Windows. Tôi nghe nói có một số vụ kiện liên quan. Nhưng này, nó không giống với táo, – lurscher

2

Tôi vừa mới bắt đầu với việc phát triển iPhone, nhưng tôi đã có thể sử dụng thành công một số thư viện C++ hiện có mà không có bất kỳ thay đổi nào. Tôi đã mang về một số lớp OpenGL mà tôi đã viết và chúng hoạt động tốt vì lib lib trên iPhone là tất cả C và không phải là Obj-C. Tôi, ví dụ, tải một kết cấu vào một mảng GLubyte bằng cách sử dụng Obj-C để có được các nguồn lực, kích thước, vv sau đó đi qua các giá trị vào mã C++ của tôi mà các cuộc gọi gl để tạo ra các kết cấu. Điều tương tự cũng áp dụng cho việc tải hình học.

Chỉ cần thay đổi tệp .m thành .mm và mọi thứ dường như hoạt động. Các lớp C++ mục tiêu có thể có các thành viên là các lớp C++ (mặc dù tôi không nghĩ cách khác áp dụng, đó có thể là một vấn đề).

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