Tôi là tất cả cho sự đa dạng ngôn ngữ, nhưng Mục tiêu C là điên rồ. Vì vậy, tôi tò mò: có thể mã hóa các ứng dụng iPhone bằng C ++ trong khi sử dụng API API, v.v.?
Tôi là tất cả cho sự đa dạng ngôn ngữ, nhưng Mục tiêu C là điên rồ. Vì vậy, tôi tò mò: có thể mã hóa các ứng dụng iPhone bằng C ++ trong khi sử dụng API API, v.v.?
Câu trả lời:
Câu trả lời ngắn, vâng, loại. Bạn có thể sử dụng Objective-C ++ mà bạn có thể đọc tại Kết nối nhà phát triển của Apple.
Nếu bạn đã biết C ++, việc học Objective-C sẽ khá đơn giản, nếu bạn quyết định thử. Thông tin thêm về chủ đề đó là tại ADC.
Mặc dù Objective-C thực sự có vẻ "điên rồ" ban đầu, tôi khuyến khích bạn nên gắn bó với nó. Khi bạn có một khoảnh khắc "a-ha", đột nhiên tất cả bắt đầu có ý nghĩa. Đối với tôi, tôi mất khoảng 2 tuần tập trung vào Mục tiêu-C tập trung để thực sự hiểu các khuôn khổ Ca cao, ngôn ngữ và cách tất cả khớp với nhau. Nhưng một khi tôi thực sự "hiểu" nó, nó rất rất thú vị.
Nghe có vẻ sáo rỗng, nhưng đó là sự thật. Dính nó ra.
Tất nhiên, nếu bạn đang mang vào thư viện C ++ hoặc mã C ++ hiện có, bạn có thể sử dụng các mô-đun đó với Objective-C / Objective-C ++.
Tôi sử dụng Objective-C để tát UI cùng nhau.
Nhưng ruột cứng của mã vẫn được viết bằng C ++.
Đó là mục đích chính của Objective-C giao diện UI và xử lý các sự kiện.
Và nó hoạt động tuyệt vời cho mục đích đó.
Mặc dù vậy, tôi vẫn thích C ++ là phần phụ trợ cho mã (nhưng chủ yếu là vì tôi thích C ++), bạn cũng có thể dễ dàng sử dụng Objective-C cho phần phụ trợ của ứng dụng.
#include <XXX>
như các tệp C / C ++.
Trước hết, nói Objective-C là "điên rồ" là hài hước - Tôi có cuốn sách Bjarne Stroustrup C ++ ngồi bên cạnh tôi, đồng hồ ở 1020 trang. PDF của Apple trên Objective-C là 141.
Nếu bạn muốn sử dụng UIKit, sẽ rất khó để bạn có thể làm bất cứ điều gì trong C ++. Bất kỳ ứng dụng iPhone nghiêm túc nào phù hợp với giao diện người dùng của Apple sẽ cần các phần UI của nó được viết bằng Objective-C. Chỉ khi bạn đang viết một trò chơi OpenGL, bạn mới có thể gắn bó gần như hoàn toàn với C / C ++.
Có một số kinh nghiệm về điều này, bạn thực sự có thể sử dụng mã C ++ cho mã "lõi" của mình, nhưng bạn phải sử dụng object-C cho bất kỳ thứ gì cụ thể của iPhone.
Đừng cố ép Objective-C hành động như C ++. Lúc đầu, dường như điều này là có thể với bạn, nhưng mã kết quả thực sự sẽ không hoạt động tốt với Ca cao và bạn sẽ rất bối rối về những gì đang diễn ra. Dành thời gian để tìm hiểu đúng cách, không có bất kỳ C ++ nào, cách xây dựng GUI và ứng dụng iPhone, sau đó liên kết trong cơ sở C ++ của bạn.
Bạn phải sử dụng Objective C để giao diện với API ca cao, vì vậy không có lựa chọn nào khác. Tất nhiên, bạn có thể sử dụng bao nhiêu C ++ tùy thích trong hậu trường (Objective C ++ giúp việc này trở nên dễ dàng).
Đó thực sự là một ngôn ngữ điên rồ, nhưng nó cũng ... thú vị khi sử dụng một khi bạn đã quen với nó. :-)
Tôi không chắc chắn về C ++, nhưng bạn chắc chắn có thể mã hóa các ứng dụng iPhone bằng C #, bằng cách sử dụng một sản phẩm có tên MonoTouch .
Bạn có thể xem bài đăng này để thảo luận chi tiết về MonoTouch Vs Obj-C: Làm thế nào để quyết định giữa MonoTouch và Objective-C?
Tôi đang trong quá trình chuyển một ứng dụng Android chuyên sâu tính toán được viết bằng Java sang iOS6. Tôi đang làm điều này bằng cách chuyển các phần không phải UI từ Java sang C ++, viết các phần UI (tối thiểu) trong Obj-C và gói phần trước trong giao diện C (nhỏ) bằng kỹ thuật C / C ++ tiêu chuẩn, sao cho nó có thể được truy cập từ Obj-C, sau tất cả là siêu nhóm C.
Điều này đã có hiệu quả cho đến nay và tôi đã không gặp phải bất kỳ vấn đề nào. Nó dường như là một cách tiếp cận hợp pháp, vì Xcode cho phép bạn tạo các lớp C ++ cũng như các lớp Obj-C và một số mã mẫu chính thức thực hiện theo cách này. Tôi đã không phải đi ra ngoài bất kỳ giao diện được hỗ trợ chính thức để làm điều này.
Dường như sẽ không có nhiều lợi ích từ việc viết mã UI còn lại của tôi trong C ++ ngay cả khi có thể, theo quan điểm về sự giúp đỡ của người xây dựng giao diện trong Xcode, vì vậy câu trả lời của tôi là bạn có thể sử dụng C ++ cho hầu như tất cả các ứng dụng của bạn, hoặc nhiều như bạn thấy phù hợp / thuận tiện.
Có nhưng Nghĩ rằng bạn có thể lập trình mọi loại chương trình bằng một ngôn ngữ là một ý tưởng thiếu sót trừ khi bạn đang viết các chương trình rất đơn giản. Mục tiêu C là dành cho Cacao vì C # dành cho .NET, Sử dụng công cụ phù hợp cho công việc phù hợp, Cố gắng làm cho C ++ tương tác với Cốc Cốc thông qua việc viết mã cầu nối và cố gắng làm cho mã C ++ hoạt động theo yêu cầu của Cacao không phải là một ý tưởng tốt. hiệu suất từ Mục tiêu C là. Bạn nên cố gắng bố trí thiết kế và kiến trúc của ứng dụng để theo dõi các kỹ năng hiện có và xác định phần nào sẽ được viết bằng ngôn ngữ nào sau đó xây dựng cho phù hợp.
Hiện tại tôi đang viết một khung công tác Objective-C ++ có tên là Objective-X, chúng tôi có thể lập trình PURE C ++ iPHONE. Bạn có thể làm như thế này:
#import "ObjectiveX.h"
void GUIApplicationMain() {
GUIAlert Alert;
GUILabel Label;
GUIScreen MainScreen;
Alert.set_text(@"Just a lovely alert box!");
Alert.set_title(@"Hello!");
Alert.set_button(@"Okay");
Alert.show();
Label.set_text(@"Ciao!");
Label.set_position(100, 200, 120, 40);
MainScreen.init();
MainScreen.addGUIControl(Label.init());
}
và biên dịch nó bằng các tùy chọn dòng lệnh thích hợp của GCC. Tôi đã biên soạn ứng dụng hellowworld này và nó w0rkX0rz như một sự quyến rũ. ;-) Nó sẽ sớm xuất hiện trên GoogleCode. Tìm kiếm Objective-X hoặc truy cập http://infotronix.orgfree.com/objectivex khoảng. một tuần sau!
URL được cập nhật (nhưng dường như không hoạt động): http://code.google.com.vn/p/objectivex/
Nó có thể là một chút offtopic, nhưng dù sao. Bạn có thể lập trình c ++ ngay trên thiết bị iOS. Kiểm tra ứng dụng CppCode ios - http://cppcode.info . Tôi tin rằng nó giúp học c và c ++ và object-c sau này.