Определение типа устройства

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

Читать далее »

Метки:

Генерация случайных чисел

Язык Objective-C не позволят генерировать случайные числа, так как в нем нет класса с методом, для этого. Для генерации случайных чисел нам подойдет язык C.

В языке C существует несколько функций для генерации случайных чисел: rand(), srand(), random(), srandom(), arc4random().

Читать далее »

Метки:

Class objects и Objective-C runtime

При компиляции программы на Objective-C компилятор для каждого введенного класса автоматически создает так называемый class object — полноценный объект, содержащий в себе всю информацию о данном классе, включая название, суперкласс, список методов и instance-переменных.

Читать далее »

Метки:

Категории

Язык Objective-C обладает возможностью добавлять новые методы к уже существующим классам. Аналогичной возможностью обладает язык Ruby, C#, JavaScript и другие. При этом не требуется исходников класса и добавленные методы автоматически становятся доступными всем классам, унаследованным от изменяемого. Так можно добавить новый метод классу NSObject и этот метод автоматически добавится во все остальные классы.

Читать далее »

Метки:

Создание и уничтожение объектов

В самом языке Objective-C нет специальных команд для создания и уничтожения объектов (подобных new и delete). Эта задача ложится на runtime-библиотеку и реализуется при помощи механизма посылки сообщений.

Читать далее »

Метки:

Синхронизация

Язык Objective-C поддерживает синхронизацию для многопоточных приложений. При помощи директивы @synchronized () можно защитить фрагмент кода от одновременного выполнения сразу несколькими потоками.

Читать далее »

Метки:

Обработка исключений

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

Читать далее »

Метки:

Протоколы

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

Читать далее »

Метки: