Практика
• Класс - Stack (стэк)
• Добавить объект в стэк
• init, initWithArray:
• Дать самый верхний (удаляется)
• Количество элементов
• Выдать объединенную строку
• Есть ли элемент или нет
•
управление объектом
• Выделениепамяти - 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];
Autorelease Pools (inpictures)
механизм 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
атрибуты свойств
• @property int age;
• @property (readonly) BOOL canLegallyVote
• @property (assign) NSString *name;
• @property (retain) NSString *name;
• @property (copy) NSString *name;
• можно самим создать get и set
осторожно с dot
вheader:
@property int age;
в implementation:
@implementation Person
- (void)setAge:(int)newAge {
self.age = newAge;
@end
Что произойдет?
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