【发布时间】:2010-06-06 12:37:53
【问题描述】:
请给我一些关于如何更改 NSString 变量的建议。
在我的课堂上,我设置了一个成员变量:
NSString *m_movieName;
...
@property(nonatomic, retain) NSString *m_movieName;
在 viewDidLoad 方法中,我为这个 var 分配了一个默认名称:
-(void)viewDidLoad{
NSString *s1 = [[NSString alloc] initWithFormat:@"Forrest Gump"];
self.m_movieName = s1;
...
[s1 release];
[super viewDidLoad]
}
在某些函数中,我想给这个变量一个新名字,所以我喜欢:
-(void)SomeFunc{
NSString *s2 = [[NSString alloc] initWithFormat:@"Brave Heart"];
//[self.movieName release]; // ??????? Should perform here?
self.m_moiveName = s2;
[s2 release];
}
我知道,NSString* var 只是一个指向已分配内存块的指针,'assign' 操作将增加这个内存块的使用计数。对于我的情况,我应该在为其赋值之前释放 m_movieName 吗?如果我不释放它(通过 [self.movieName release]),前一个块将在何时何地被释放? 非常感谢您的帮助!
【问题讨论】:
标签: iphone cocoa xcode nsstring