Предположим, что у меня есть этот код ...iphone - свойства и переменные экземпляра
foo.h
@interface Foo : NSObject {
NSString *aString; // 1
}
@property (nonatomic, retain) NSString *aString;
foo.m
@synthesize aString = _aString;
....
- (void)dealloc {
[aString release];
[super dealloc];
}
Мои вопросы:
- Мне действительно нужно объявить aString в «1»? (см. код)
- если я синтезирую aString = _aString, я уже создаю экземпляр переменной, не так ли?
- Если я сохраняю свойство на foo.h (@property), почему Xcode жалуется, если я выпущу aString в dealloc?
спасибо.
ах, я вижу, строка - это своего рода псевдоним для реального материала ...: D ... спасибо. Ваш ответ был прекрасен !!!!!! – SpaceDog
Компилятор делает несколько вещей для вас за кулисами. Я написал подробный ответ (http://www.cocoabuilder.com/archive/cocoa/312413-code-error-in-your-first-mac-app-tutorial.html#312424) для кого-то на какао-dev mailing list a back back, если вы хотите лучше понять свойства. –