請給我一些關於如何更改NSString變量的建議。在爲它分配新值之前,我應該釋放NSString嗎?
在我的課,我設置的成員VAR:
NSString *m_movieName;
...
@property(nonatomic, retain) NSString *m_movieName;
在viewDidLoad方法中,我指定一個默認名稱此變種:
-(void)viewDidLoad{
NSString *s1 = [[NSString alloc] initWithFormat:@"Forrest Gump"];
self.m_movieName = s1;
...
[s1 release];
[super viewDidLoad]
}
在一些功能,我想給一個這個var的新名稱,所以我喜歡:
-(void)SomeFunc{
NSString *s2 = [[NSString alloc] initWithFormat:@"Brave Heart"];
//[self.movieName release]; // ??????? Should perform here?
self.m_moiveName = s2;
[s2 release];
}
我知道,NSString * var只是一個指向已分配內存塊的指針,並且「分配」操作將增加此內存塊的使用計數。對於我的情況,我應該釋放m_movieName之前分配一個值?如果我沒有釋放它(通過[self.movieName釋放]),上一個塊的何時何地將被釋放? 非常感謝您的幫助!
http://stackoverflow.com/questions/2922196/best-way-to-initialise-clear-a-string-variable-cocoa/2922232#2922232這可以幫助你 – vodkhang 2010-06-06 12:42:25