Я читаю здесь Учиться C до Objective-C?
Обычно я затем заменяю некоторый код Obj-C чистым кодом C (в конце концов, вы можете смешивать их сколько угодно, содержимое метода Obj-C может быть целиком, чистым кодом C)
Это правда?
Можно ли создать приложение для iPhone исключительно на языке программирования C?
Ответы:
Черт, это заняло у меня некоторое время, но я понял:
main.c:
AppDelegate.c:
View.c
Это некрасиво, но это работает.
Если вы хотите скачать это,
вы можете получить его из моего Dropbox здесьВы можете получить его из моего репозитория GitHub здесь :
источник
@"AppDelegate
постоянная строка NSString, которая не будет компилироваться с помощью компилятора C-only. ИспользуйтеCFSTR("AppDelegate")
вместо этого.Objective-C является надмножеством языка C, поэтому теоретически можно написать программу целиком на C, однако, если вы не разбираетесь в этом
OpenGL ES
, вам нужно будет сделать хотя бы какой-то objC (даже в примере Рича есть const NSString * в нем), в противном случае вам придется написать мнения самостоятельно.ОК, вышесказанное совершенно неправильно. Позвольте мне сказать, я поражен, что Рич достиг этой высокой цели, поэтому я перенес ее на компьютер Mac (источник здесь ). Приведенные ниже файлы не имеют заголовков, не ссылаются на Какао, и при этом у проекта нет пера:
AppDelegate.m
View.m
prefix.pch
источник
Процитированный отрывок верен, но ответ на ваш вопрос - нет.
Чтобы проиллюстрировать, о чем говорил ответчик Меки по этому другому вопросу:
Там нет ничего , кроме чистого кода C в этом методе, но сам метод является код Objective-C, как класс , который содержит этот метод.
Таким образом, можно сделать то, что сказал Меки, но вы не можете (практически - как показал Ричард Дж. Росс III, технически возможно, но довольно много печатать) написать целую программу Cocoa Touch на чистом C.
источник
На самом деле, часть кода, размещенного здесь, хотя и написана на C, все еще вызывает код Objective-C :). Я не знаю, соответствует ли это сценарию оригинального плаката, когда он спросил
но я бы согласился с мнением людей, которые говорят, что, вообще говоря, и для приложения с графическим интерфейсом вам нужно написать свой графический интерфейс на OpenGL (который является C).
Я думаю, это то, что делает большинство игр, верно? Хотя я не уверен, есть ли доступ к вводу / выводу iPhone (например, к сенсорному экрану) в C.
И последнее, но не менее важное: парни, написавшие код выше, потрясающие! :)
источник
objc_msgSend()
является чистым C. Тот факт, что я вызываю,initWithFrame:
не имеет значения, поскольку реализации методов также являются функциями C.