6. Практика
• Класс - Stack (стэк)
• Добавить объект в стэк
• init, initWithArray:
• Дать самый верхний (удаляется)
• Количество элементов
• Выдать объединенную строку
• Есть ли элемент или нет
•
8. управление объектом
• Выделение памяти - alloc
• Освобождение памяти - dealloc
• dealloc никогда не вызывается
самостоятельно! (почти)
9. подсчет использования
• Живой пока count >0
• alloc и copy создают объект с count=1
• retain увеличивает count на 1
• release уменьшает count на 1
• когда count=0 => dealloc
• retainCount
10. пример
Person *person = nil;
person = [[Person alloc] init];
[person setName:@“John Galt”];
[person setAge:32];
[person castBallot];
[person doSomethingElse];
[person release];
20. Autorelease Pools (in pictures)
механизм autorelease
pp zed nt t
ch
a
ali nib e en pp
n iti ain ev ev it a
au in or
dle Ex
L
pp adm it f n
A Lo Wa Ha
Tuesday, January 12, 2010
21. комильфо
• alloc, new или copy возвращают не
autorelease объект
• остальные - autorelease
22. нет autorelease!
• когда нужно хранить объект долго
• вызываем [object retain]
{
name = [NSMutableString string];
...
[name retain];
}
//...
{
[name release];
}
23. cвойства
• Доступ к полям объекта
• Простота getter/setter
• Определение политики использования
• Но! можно переопределить get и set
26. атрибуты свойств
• @property int age;
• @property (readonly) BOOL canLegallyVote
• @property (assign) NSString *name;
• @property (retain) NSString *name;
• @property (copy) NSString *name;
• можно самим создать get и set
28. осторожно с dot
в header:
@property int age;
в implementation:
@implementation Person
- (void)setAge:(int)newAge {
self.age = newAge;
@end
Что произойдет?
33. UIKit Framework
• базовый framework
• стандартные элементы
• запускает приложение и контролирует
жизненный цикл приложения
• доступ к объекту UIApplication:
[UIApplication sharedApplication];
• Управление статус-баром, иконкой
приложения
34. делегаты
• вместо наследования предоставляем
делегат с реализованными методами
• используется в UIApplication ■
UITableView ■ UITextField
35. UIApplicationDelegate
• Xcode создает самостоятельно
• участие в жизни приложения
• реализует методы, которые вызывает
UIApplication
- (void)applicationDidFinishLaunching:(UIApplication *)application;
- (void)applicationWillTerminate:(UIApplication *)application;
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application;
36. Info.plist file
• Описание настроек приложения
- Icon appearance
- Status bar style (default, black, hidden)
- Orientation
- Uses Wifi networking
- System Requirements