Как использовать * C * в Objective-C? - PullRequest
1 голос
/ 19 ноября 2010

Последние пару месяцев я занимаюсь разработкой iPhone.

Имея предыдущий опыт только в ООП , я сильно полагался на API-интерфейсы Apple, хотя, на мой взгляд, величественно я заставил меня написать код, который в ретроспективе выглядит как странная смесь рубина / smalltalk с добавленным шаблоном .

Так что я думаю, что я пропускаю и заказываю K & R. Тем не менее, мне интересно, как то, что я изучу, может быть использовано для работы с iOS, без борьбы с API устройств и всей пародийной версией OO?

Ответы [ 5 ]

3 голосов
/ 19 ноября 2010

API нижнего уровня довольно сложны в прямом C, возможно, вы хотели бы изучить их?Например, Кварц 2D имеет API C.

1 голос
/ 19 ноября 2010

Objective-C - это расширенный набор C. Вы можете смешивать вызовы функций Objective-C и C, операторы и т. Д.

Так, например, если вы предпочитаете сокеты Posix NSSocketPort, вы можете просто смешатьгнездо C функционирует там, где вы хотите.Или, если вы хотите, чтобы он был немного более объектно-ориентированным, вы могли бы обернуть операторы C в вызов функции Objective-C, который изолировал бы ваш код C от остальной части кода Objective-C.

0 голосов
/ 20 ноября 2010

Я почти согласен с @jeff, за исключением того, что не понимаю, почему так много начинающих программистов на Objective C предпочитают iPhone, когда могут запустить приложение Mac с гораздо меньшими трудностями и конвертировать его позже.

Но да, покупка копии K & R была бы очень хорошей идеей (а также получение копии стандартов C90 или C99, если вы можете себе это позволить). На самом деле, у меня есть книга по играм для iOS, в которой предлагается перейти на vanilla C для множества низкоуровневых вещей, чтобы сократить расходы на обмен сообщениями для повышения производительности. По сути, вы не делаете ничего, что «не должны» делать с помощью функций C; библиотека C все еще должна использоваться, так что вы не делаете ничего особенно странного или грязного.

0 голосов
/ 19 ноября 2010

Не учить С не пропускает ничего.

0 голосов
/ 19 ноября 2010

Что-то, что могло бы помочь вам понять связь между C и Objective-C, - это создать оболочку Objective-C для некоторого кода на CЯ бы порекомендовал написать простое приложение для iPhone на Lua.Этого должно быть достаточно для проекта, чтобы действительно взглянуть на C.

...