我對將屬性賦值給Objective-C存在疑問。我有很多的「misteriously錯過」的價值觀的問題,例如,如果我有這樣的接口:使用(或不使用)自我。在Objective-C屬性中
// MyClass.h
@interface MyClass : NSObject {
MyOtherClass *myVar;
}
@property (nonatomic, retain) MyOtherClass *myVar;
- (id)initWithValue:(NSString *)val;
實施這一項目:
// MyClass.m
@implementation MyClass
@synthesize myVar;
- (id)initWithValue:(NSString *)val {
self = [super init];
if (self != nil) {
/** Do some stuff with val... **/
myVar = [method:val]; // Some method that returns a MyOtherClass value
}
return self;
}
在執行的某一點,值myVar消失,變化或其他東西...而解決方案是改變:
myVar = [method:val]; //返回一個MyOtherClass值
爲
自一些方法 .myVar = [方法:VAL]; //一些返回MyOtherClass值的方法
那麼......使用自我還是不使用它有什麼不同?我的意思是,很明顯,我已經使用它,因爲如果沒有它會造成問題,但我不知道爲什麼
預先感謝您
[調用self.var VS變種之間的不同]的可能重複(http://stackoverflow.com/questions/4627646/difference-between-calling-self-var-vs-var) – 2012-04-12 21:18:07