Я всі за мовну різноманітність, але Мета C божевільна. Тож мені цікаво: чи можна кодувати додатки iPhone за допомогою C ++ під час використання API какао тощо?
Я всі за мовну різноманітність, але Мета C божевільна. Тож мені цікаво: чи можна кодувати додатки iPhone за допомогою C ++ під час використання API какао тощо?
Відповіді:
Коротка відповідь, так, начебто. Ви можете використовувати Objective-C ++, про який ви можете прочитати на підключенні для розробників Apple.
Якщо ви вже знаєте C ++, вивчити Objective-C було б досить просто, якби ви вирішили спробувати. Більше інформації на цю тему також є в АЦП.
Хоча «Objective-C» справді здається «божевільним» спочатку, я закликаю вас дотримуватися цього. Як тільки у вас є "а-ха" момент, раптом все починає мати сенс. Для мене знадобилося близько 2 тижнів зосередженої концентрації Objective-C, щоб дійсно зрозуміти рамки какао, мову та те, як все це поєднується. Але одного разу я справді "отримав" це, це було дуже дуже хвилююче.
Це звучить кліше, але це правда. Приклейте його.
Звичайно, якщо ви вводите бібліотеки C ++ або існуючий код C ++, ви можете використовувати ці модулі за допомогою Objective-C / Objective-C ++.
Я використовую Objective-C, щоб плескати інтерфейс разом.
Але жорсткі кишки коду все ще написані на C ++.
Саме це і є основною метою інтерфейсу інтерфейсу користувача Objective-C та керування подіями.
І це чудово справляється з цією метою.
Я все ще люблю C ++ як бекенд для коду (але це, головним чином, мені подобається C ++), ви можете досить легко використовувати Objective-C і для бекенда програми.
#include <XXX>
як C / C ++.
По-перше, сказати, що Objective-C є "божевільним" - це жартівливий - у мене поруч сидить книга Bjarne Stroustrup C ++, яка на 1020 сторінках. PDF-файл Apple на Objective-C становить 141.
Якщо ви хочете використовувати UIKit, вам буде дуже, дуже важко зробити що-небудь в C ++. Будь-який серйозний додаток для iPhone, який відповідає інтерфейсу Apple, потребуватиме, щоб його частини інтерфейсу були записані в Objective-C. Тільки якщо ви пишете гру OpenGL, ви зможете майже повністю дотримуватися C / C ++.
Маючи певний досвід цього, ви дійсно можете використовувати код C ++ для свого "основного" коду, але ви повинні використовувати target-C для будь-якого конкретного iPhone.
Не намагайтеся змусити Objective-C діяти як C ++. Спочатку вам здасться, що це можливо, але отриманий код справді не спрацює з какао, і ви дуже заплутаєтесь у тому, що відбувається. Витратьте час, щоб навчитися правильно, без будь-якого C ++ навколо, як створювати графічні інтерфейси та додатки для iPhone, а потім з'єднайте свою базу на C ++.
Ви повинні використовувати Objective C для взаємодії з API какао, тому вибору немає. Звичайно, ви можете використовувати стільки C ++, скільки вам подобається за лаштунками (ціль C ++ робить це легко).
Це справді божевільна мова, але це також ... якось весело користуватися, коли ви трохи звикли до неї. :-)
Я не впевнений у C ++, але ви точно можете кодувати додатки iPhone у C #, використовуючи продукт під назвою MonoTouch .
Ви можете ознайомитись з цією публікацією для детальної дискусії на MonoTouch Vs Obj-C: Як прийняти рішення між MonoTouch та Objective-C?
Я зараз переношу обчислювальний додаток для Android, написане на Java в iOS6. Я роблю це, переносячи частини Java, що не користуються інтерфейсом, з Java на C ++, записую (мінімальні) частини інтерфейсу в Obj-C і загортаючи колишню в (малий) інтерфейс С, використовуючи стандартну техніку C / C ++, так що до нього можна отримати доступ від Obj-C, який, зрештою, є сукупністю C.
Це було ефективно до цих пір, і я не стикався з жодними дітками. Це, мабуть, є законним підходом, оскільки Xcode дозволяє створювати C ++ класи, а також Obj-C класи, а деякі офіційні зразки коду роблять так. Для цього мені не довелося виходити за межі жодного офіційно підтримуваного інтерфейсу.
Здавалося б, багато чого виграти від написання мого залишився коду інтерфейсу в C ++, навіть якщо це можливо, з огляду на допомогу, яку вам надав конструктор інтерфейсу в Xcode, тому моя відповідь буде, що ви можете використовувати C ++ для майже весь ваш додаток або стільки його, скільки вам здається доречним / зручним.
Так, але думка про те, що ви можете запрограмувати будь-яку програму на одній мові, є хибною ідеєю, якщо ви не пишете дуже простих програм. Мета C - для какао, як C # - це для .NET, використовуйте правильний інструмент для правильної роботи, намагаючись змусити C ++ взаємодіяти з какао через написання мостового коду та намагання змусити код C ++ поводитись відповідно до вимог какао - це не дуже гарна ідея, і не очікуйте, що C ++ продуктивність від Цілі C є. Спробуйте сформувати дизайн та архітектуру зберігання додатків з урахуванням існуючих навичок та визначити, яку частину слід написати на якій мові, а потім скласти відповідно.
Я зараз пишу рамку Objective-C ++ під назвою Objective-X, яка робить можливим PURE C ++ iPHONE PROGRAMMING. Ви можете зробити так:
#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());
}
і компілювати його, використовуючи відповідні параметри командного рядка GCC. Я вже склав цю програму helloworld, і це w0rkX0rz як шарм. ;-) Вона буде доступна незабаром на GoogleCode. Шукайте Objective-X або відвідайте http://infotronix.orgfree.com/objectivex прибл. через тиждень!
Оновлена (але, мабуть, неактивна) URL-адреса: http://code.google.com/p/objectivex/
Це може бути трохи офтопіком, але все одно. Ви можете програмувати c ++ прямо на пристроях iOS. Ознайомтеся з додатком CppCode ios - http://cppcode.info . Я вважаю, що це допомагає пізніше вивчити c і c ++ та target-c.