所以我想問的是低於@property @synthesize @dynamic差異在Xcode
這裏是我的頭文件
NSString *myString;
在M。文件
-(void)someMethod{
myString = [NSString stringWithString = @"Hello"];
NSLog(@"%@",myString);
}
-(void)dealloc{
[myString release];
}
-(void)viewDidUnload{
[myString release];
myString=nil;
}
現在確定其他情況
在我的頭文件
NSString *myString;
@property (nonatomic,retain) NSString *myString;
在M。文件
@synthesize myString;
-(void)someMethod{
NSString *tempString = [[NSString alloc] initWithString:@"Hello"];
self.myString = tempString;
[tempString release];
NSLog(@"%@",myString);
}
-(void)dealloc{
[myString release];
}
-(void)viewDidUnload{
[myString release];
self.myString=nil;
}
我真的需要這個,因爲我不understant它尚未白癡指南。兩者都有效。也是我使用釋放dealloc和viewDidUnload正確??預先感謝
'@ property'和'@ synthesize'語句與允許「點符號」無關。 「點符號」可以被看作是替代訪問setter和getters的括號形式(實際上使用更普遍,但最好限制getter/setter使用)。 '[self myIvar]'相當於'self.myIvar',[self setMyIvar:myValue]'相當於'self.myIvar = myValue'。 'dot notation'可以用於非屬性,比如'NSString's:'myString.length'可以正常工作,並且是合理可接受的用法。 – zaph
不知道,謝謝! – sooper
@CocoaFu我想我從來沒有意識到NSString沒有一個名爲'length'的屬性,如果是的話,那麼點符號是如何工作的?這可能是非常有趣的,如果一個人可以實現它爲自己的類... –