Можно ли запрограммировать iPhone на С++?

Я все для языкового разнообразия, но Objective C безумный. Поэтому мне любопытно: возможно ли кодировать приложения iPhone с помощью С++ при использовании API Cocoa и т.д.?

4b9b3361

Короткий ответ, да, вроде. Вы можете использовать Objective-C ++, о котором вы можете прочитать в Apple Developer Connection.

Если вы уже знаете С++, обучение Objective-C будет довольно простым, если вы решили попробовать. Более подробная информация по этой теме находится в АЦП.

53
ответ дан 07 нояб. '08 в 0:55
источник

Хотя Objective-C действительно кажется "безумным" изначально, я призываю вас придерживаться его. Как только у вас есть момент "а-ха", внезапно все это начинает иметь смысл. Для меня потребовалось около 2 недель сосредоточенной концентрации Objective-C, чтобы действительно понять рамки Cocoa, язык и то, как все это сочетается. Но как только я действительно "получил" это, это было очень интересно.

Звучит клише, но это правда. Придерживайтесь.

Конечно, если вы используете библиотеки С++ или существующий код на С++, вы можете использовать эти модули с помощью Objective-C/Objective-С++.

59
ответ дан 07 нояб. '08 в 1:01
источник

Я использую Objective-C для совместного использования пользовательского интерфейса.
Но жесткие кишки кода все еще написаны на С++.

Это основная цель Objective-C интерфейса интерфейса и обработки событий.
И он отлично работает для этой цели.

Мне все еще нравится С++ в качестве бэкэнда для кода (но в основном потому, что мне нравится С++), вы могли бы легко использовать Objective-C для бэкэнд приложения.

40
ответ дан 07 нояб. '08 в 2:39
источник

Прежде всего, говоря, что Objective-C является "безумным", он с чувством юмора. У меня есть книга Bjarne Stroustrup С++, сидящая рядом с моей стороны, которая работает на 1020 страницах. Apple PDF на Objective-C составляет 141.

Если вы хотите использовать UIKit, вам будет очень и очень сложно делать что-либо на С++. Любому серьезному iPhone-приложению, которое соответствует пользовательскому интерфейсу Apple, потребуется его части пользовательского интерфейса, которые будут записаны в Objective-C. Только если вы пишете игру OpenGL, вы можете полностью придерживаться C/С++.

28
ответ дан 07 нояб. '08 в 2:39
источник

Имея некоторый опыт этого, вы действительно можете использовать код С++ для своего "основного" кода, но вам нужно использовать objective-C для любого конкретного iPhone.

Не пытайтесь заставить objective-C действовать как С++. Сначала вам покажется, что это возможно, но полученный код действительно не будет работать с Cocoa, и вы будете очень смущены относительно того, что происходит. Потратьте время, чтобы учиться правильно, без каких-либо С++, как создавать графические интерфейсы и приложения для iPhone, а затем ссылаться на вашу базу на С++.

14
ответ дан 09 нояб. '08 в 20:43
источник

Вы должны использовать Objective C для интерфейса с API Cocoa, поэтому выбора нет. Конечно, вы можете использовать столько С++, сколько хотите, за кулисами (Objective С++ делает это легко).

Это безумный язык, но это также... развлечение, когда вы немного привыкли к нему.: -)

3
ответ дан 22 янв. '11 в 18:12
источник

Я переношу приложение для Android, написанное на Java, в iOS6. Я делаю это, портируя части, отличные от UI, от Java до С++, записывая (минимальные) части пользовательского интерфейса в Obj-C и обертывая первый в (небольшом) C-интерфейсе, используя стандартную технику C/С++, так что к нему можно получить доступ из Obj-C, который, в конце концов, является надмножеством C.

Это действовало до сих пор, и я не встречал никаких ошибок. Это похоже на законный подход, поскольку Xcode позволяет создавать классы С++, а также классы Obj-C, и некоторые из официальных примеров кода делают все так. Для этого мне не пришлось выходить за рамки официально поддерживаемых интерфейсов.

Похоже, что не нужно было писать мой оставшийся код интерфейса на С++, даже если это было возможно, с учетом помощи, предоставленной вам разработчиком интерфейса в Xcode, поэтому я бы ответил, что вы можете используйте С++ для почти всего вашего приложения или столько, сколько вы найдете подходящим/удобным.

2
ответ дан 27 окт. '12 в 18:20
источник

Да, но мысль о том, что вы можете программировать все виды программ на одном языке, является ошибочной идеей, если вы не пишете очень простые программы. Objective C для Cocoa, поскольку С# для .NET. Используйте правильный инструмент для правильного задания. Попытка заставить С++ взаимодействовать с Cocoa посредством написания кода моста и попытки заставить код С++ вести себя согласно требованиям Cocoa не является хорошая идея не ожидает, что производительность С++ из Objective C будет. Вы должны попытаться создать дизайн макета и архитектуру приложения с учетом существующих навыков и определить, какая часть должна быть написана, на каком языке затем строить соответственно.

1
ответ дан 09 марта '15 в 19:18
источник

В настоящее время я пишу фреймворк Objective-C ++ под названием Objective-X, который делает возможным PURE С++ 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 & it w0rkX0rz как шарм.;-) Он скоро появится в GoogleCode. Найдите Objective-X или посетите http://infotronix.orgfree.com/objectivex ок. через неделю!

Обновлен (но, по-видимому, неактивен) URL: http://code.google.com/p/objectivex/

0
ответ дан 09 авг. '10 в 17:27
источник

Это может быть немного оффтопным, но в любом случае. Вы можете запрограммировать С++ прямо на устройствах iOS. Проверьте приложение CppCode ios - http://cppcode.info. Я считаю, что это помогает узнать c и С++ и objective-c позже.

0
ответ дан 02 дек. '14 в 10:23
источник