партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
В начале изучения любого языка программирования, если вы не любите читать объемные книги "для чайников", наверно чаще всего возникают вопросы типа "Что это?", или "Зачем оно?" и подобные. В этом конспекте я постараюсь насколько возможно кратко дать ответы на некоторые самые глобальные из подобных вопросов, которые возникали у меня в процессе ознакомления с XCode, Objective-C, Cocoa, Cocoa Touch и т.д. после многолетней работы только с веб-программированием. Хотя, возможно, данная статья будет полезна и не только тем, кто знаком с php, Javascript и Html. Эта статья очень поверхностная, однако, возможно, позволит вам прояснить некоторые моменты.
[spoiler]
Технологии

XCode - среда для разработки OS X и iOs приложений, распространяется Apple бесплатно, и включает все необходимые инструменты для создания приложений
Objective-C - язык программирования
Cocoa - фреймворк для разработки OS X приложений
Cocoa Touch - фреймворк для разработки iOs приложений

Основной синтаксис Objective-C

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

Вызов функций в Objective-C

Функции (методы) в Objective-C вызываются следующим образом по сравнению с php:

Инстанс методы (методы, вызываемые с переменной, т.е. объекта)
В php: Объект->Метод
В Objective-C: [Объект Метод]
Методы класса (методы, вызываемые без объекта)
В php: Класс::Метод
В Objective-C: [Класс Метод]

Описание функций

Функции в Objective-C должны описываться как в файлах с расширением .m (заголовок и тело функции), так и в файлах с расширением .h (только заголовок). Заголовки функции в файлах .h и .m должны совпадать.

Инстанс методы начинаются с "-", а методы класса с "+".

Глобальные переменные

Для хранения общих данных приложения не стоит использовать глобальные переменные (хотя это тоже возможно, и задать их можно в файле main.m), для этого лучше создать специальный класс, называемый синглтоном (одиночкой) http://www.galloway.me.uk/tutorials/singleton-classes/

Статические переменные

Статические же переменные, напротив, в функциях можно использовать аналогично php. Более того, они и используются в упомянутом уже сиглтоне.

Synthesize

Иструкция synthesize используется для автоматической генерации геттера и сеттера (функции считывающей и записывающей значения соответственно). Причем, начиная с XCode 4.4 указывать ее необязательно, она вставляется автоматически.

Сохранение настроек

Для сохранения настроек приложения используется стандартный класс NSUserDefaults. Сами настройки хранятся в файлах типа plist внутри пакета приложения. Настройки для любого приложения можно изменить также через терминал с помощью команды defaults. Вот https://developer.apple.com/library/mac/samplecode/UserDefaults/Introduction/Intro.html#//apple_ref/doc/uid/DTS40008874 простое демо приложение от Apple для работы с этим классом.

NSApp

NSApp - это не класс, а глобальная переменная класса NSApplication, как, например, $_REQUEST в php.

Массивы

С массивами все совсем не так просто как в php. Бывают массивы NSArray и NSMutableArray. Отличие в том, что NSArray вообще нельзя менять впоследствии после создания, а  NSMutableArray - можно, при помощи методов -addObject: и -insertObject:atIndex:. И это нумерованные массивы. Если же нужны массивы с символьными ключами, то это типы NSDictionary и NSMutableDictionary

Чтобы оставить сообщение, авторизуйтесь, или войдите с помощью: