小编Ell*_*hen的帖子

我应该在为其分配新值之前释放NSString吗?

请给我一些关于如何更改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.movi​​eName release]),前一个块何时何地被释放?非常感谢你的帮助!

iphone xcode cocoa nsstring

2
推荐指数
1
解决办法
2794
查看次数

标签 统计

cocoa ×1

iphone ×1

nsstring ×1

xcode ×1