7. Особенности
• Высокие ожидания пользователей
• Другие паттерны использования
• Маленький экран
• Слабый процессор, мало памяти
• Медленный интернет
• Управление жестами
16. История
1981 — Object-Oriented Pre-Compiler (OOPC).
Компания StepStone. Tom Love & Brad Cox
1986 — Objective-C. «Object-Oriented Programming, An
Evolutionary Approach» (Brad Cox).
1988 — NeXT лицензирует Objective-C
1996 — Apple покупает NeXT. Objective-C — основной
язык для Mac OS.
2007 — Objective-C — основной язык для iPhone OS
25. Класс - описание внутреннего состояния + методов
изменения этого состояния
Объект - экземпляр класса
Поля - состояние объекта
Методы - изменение состояния объекта
26. Класс «Работник»
Поля:
- имя (строка)
- возраст (целое)
- пол (м/ж)
- время_поступления_на_работу (дата)
- время_увольнения (дата)
- подчиненные (массив работников)
Методы:
- уволить()
- добавить подчиненного(работник)
30. nil
• аналог null из других языков
• можно вызывать любой метод, не будет
исключения
• если метод возвращает объект - вернется nil
• если метод возвращает число - вернется 0
• если метод возвращает структуру - результат не
определен
31. nil
NSString *a = nil;
int length = [a length]; // 0
NSString *m = [a mutableCopy]; // nil
NSRange range = [a rangeOfString:@"a"]; // undefined!!!
if (a) // if (a != nil)
{
NSRange r = [a rangeOfString:@"a"];
}
32. BOOL
BOOL a = YES;
if (a) // if (a == YES)
{
BOOL b = [c isEqual:d];
if (!b) // if (a == NO)
{
//blabla
}
}
104. retain/release
• после init счетчик ссылок равен 1
• когда объекту изменяют внутреннее поле
через retain-setter: retain новому
значению, release старому
• когда в массив или словарь добавляют
элемент - ему retain
• когда удаляют элемент - release ему
105. ARC
retain release autorelease
[super dealloc]
• автоматически генерится dealloc
• автоматический retain/release при присваивании
полей
• автоматический retain и autorelease для
возвращаемого значения из метода
• автоматический release для локальной
переменной при завершении области видимости