2010-05-24 2 views
2

Я решил начать программирование некоторых приложений для iPhone, которые в конечном итоге будут представлены в App Store. Поэтому я должен использовать язык, поддерживаемый Apple.Какой самый поддерживаемый язык программирования для iPhone?

Однако, исходя из того, что я понимаю, существует множество языков, на которых я могу выбирать.

Ansi C

Objective C

C

C++

Я начал изучать C++ в школе еще в 2001 году, так что, может быть, я должен использовать. Тем не менее, я хотел бы использовать язык, который наиболее поддерживает API и сообщество wize. Кто это?

ответ

9

Вот низким вниз:

Все iPhone SDK API, либо Objective-C или чистый (ANSI) C. Чистые API, C, как правило, быть API, более низкого уровня, так что вы можете использовать только объективно- C. Однако Objective-C является строгим надмножеством C, поэтому вам понадобится разумное заземление на C, чтобы написать Objective-C.

C++ полностью поддерживается, но не требуется (нет C++ API). Вы можете даже смешивать Objective-C и C++ в том же источнике, используя Objective-C++. Если вы сделаете это, лучше использовать C++ для чистых вычислительных компонентов, чистую Objective-C для front-end и Objective-C++ для слоя «glue» в середине.

В целом: вы будете необходимо C и Objective-C. Используйте C++ для некоторых частей, если вам это особенно нужно.

+0

Wow звучит запутанно :-) Но я дам ему пойти –

+1

Вам не нужно знать код C в Objective-C, но вы должны определенно работали с другим языком кодирования до обучения Obj-C. Если у вас нет опыта, который когда-либо был в кодировании, вы, вероятно, должны сначала изучить C. – Emil

+0

@ Emil. Вам не нужно знать C внутри, но вам нужно хотя бы базовое владение этим, поскольку вы будете использовать множество функций языка C в Obj-C, и очень сложно уйти от C API - подумайте таких вещей, как «CRect», например – philsquared

3

Objective-C является самым поддерживается - все примеры используют его

+0

Не только большинство, но * только * поддерживаемый язык, если «поддерживается» означает «официально поддерживается Apple». –

+3

Это неправда. C и C++ официально поддерживаются. На iPhone нет API-интерфейсов C++, но есть C API. – philsquared

2

Основной язык для платформы iPhone является Objective-C - почти все структуры являются Objective-C на основе так что вам придется использовать его для UI части в наименее. Однако, поскольку цель-c является надмножеством языка c, вы сможете написать некоторые части своей программы, используя c/C++.

-2

Objective-C - это надмножество C/C++. Вы должны изучить C/C++ для кода с Obj-C, но вы не можете разрабатывать для iPhone только с C/C++. Многие проблемы должны быть кодифицированы с помощью Obj-C, хотя вы можете кодифицировать многие вещи с помощью C/C++. Например, строка в Obj-C

[anObject aProperty] 

равно это в C++

anObject.aProperty 

Но вы не можете использовать C/C++ для некоторых вопросов, как synthezising свойств, ссылок точек и действий и т.д. .

В разработке игр рекомендуется избегать Obj-C, когда вы можете использовать аналогичные в C/C++, но Obj-C очень мощный и чище, чем C++.

+4

Objective-C ** не является ** супер-комплектом C++. И '[anObject aProperty]' ближе к 'anObject.aProperty()' в C++. – kennytm

+0

Кто это стоит? –

+0

Да, это надмножество C, а не C++. Извини за это. Что касается свойства, я использую синтаксис Xcode, где два предложения возвращают один и тот же результат. – emenegro

2

Существуют рамки C и Objective-C. Quartz2D написан на C, но структура Cocoa Touch написана, например, в Objective-C. Поскольку Objective-C является надмножеством C, если вы выберете Objective-C, вы сможете без проблем использовать все доступные фреймворки.

0

В зависимости от того, какого типа приложений вы собираетесь писать, вы можете сэкономить много времени & головной боли и использовать Appcelerator's Titanium Mobile (JavaScript) или Rhomobile (Рубин). Все в соответствии с последним TOU от Apple и, следовательно, по-прежнему поступают в App Store.

0

Единственные языки, которые официально разрешены Яблоком являются

  • JavaScript
  • Objective-C
  • C++
  • C

Все остальные языки не допускаются.

Независимо от того, является ли это ограничение законным, это совершенно другой вопрос. (Мое чувство кишки говорит, что, по крайней мере, в странах с довольно нормальными антимонопольными законами, это незаконно.)

Смежные вопросы