请给我一些关于如何更改NSString变量的建议.
在我的课上,我设置了一个成员var:
NSString *m_movieName;
...
@property(nonatomic, retain) NSString *m_movieName;
Run Code Online (Sandbox Code Playgroud)
在viewDidLoad方法中,我为此var指定了一个默认名称:
-(void)viewDidLoad{
NSString *s1 = [[NSString alloc] initWithFormat:@"Forrest Gump"];
self.m_movieName = s1;
...
[s1 release];
[super viewDidLoad]
}
Run Code Online (Sandbox Code Playgroud)
在某些功能,我想给这个var一个新的名字,所以我喜欢:
-(void)SomeFunc{
NSString *s2 = [[NSString alloc] initWithFormat:@"Brave Heart"];
//[self.movieName release]; // ??????? Should perform here?
self.m_moiveName = s2;
[s2 release];
}
Run Code Online (Sandbox Code Playgroud)
我知道,NSString*var只是指向已分配内存块的指针,'assign'操作将使用count递增此内存块.对于我的情况,我应该在为其分配值之前释放m_movieName吗?如果我不释放它(通过[self.movieName release]),前一个块何时何地被释放?非常感谢你的帮助!