2016-08-28 6 views
1

Я начал новый проект iOS в Xcode. Файл-Новый-SingleViewAppТочка входа приложения в Objective-C

Затем я выбрал следующие файлы

enter image description here

и перемещено в корзину. Затем я удалил следующие ключи от Info.plist файла: enter image description here

Затем я добавил файл C именем main.c Содержание main.c файла:

int main(int argc, char * argv[]) { 

     print("hello"); 
} 

И, похоже, это работает, приложение компилируется и запускается и записывает «привет» на консоль. Мой вопрос: был ли main.m (а не main.c), судя по всему, был точкой входа приложения?

ответ

5

Нет правила о имени файла или его суффиксе: только о названии функции main. Ваш файл может быть записан на C или Objective-C, поэтому его суффикс может быть .c или .m. Программа Objective-C, в конце концов, является программой на C; Objective-C is C.

Однако обратите внимание, что ваше приложение теперь не может использовать Cocoa для чего-либо. Это, по сути, не приложение. Он никогда не звонит UIApplicationMain. Он просто запускает свою линию и завершает работу. Так что это глупо.

Более эффективным способом начать работу над тем, что вы делаете, будет использование шаблона инструмента командной строки macOS. Обратите внимание на то, что вы можете записать его в C! То, что вы создали, очень как инструмент командной строки C (за исключением того, что нет инструментов командной строки iOS).

+4

Чтобы быть немного яснее в первом предложении: «имя main» относится к * функции *, а не к файлу. Системе все равно, если ваш «главный() определяющий файл» называется «myapp.m' или« superawesome.c », если только одна вещь определяет« main() ». –

+0

@RobNapier Спасибо, как всегда; Я подкорректирую. – matt