【发布时间】:2011-04-07 11:28:13
【问题描述】:
我在我的班级中使用NSString,并且经常需要将字符串值复制到另一个班级。但我的问题是我应该如何初始化字符串,例如init?
(值是类成员,以下调用在 init 中)
value = [NSString stringWithCString:inStrning encoding:NSASCIIStringEncoding];
或
value = [[NSString alloc] initWithCString:inStrning encoding:NSASCIIStringEncoding];
这里有什么区别?初始化完成时是否释放了在第一次调用中分配的内存?
我使用value 作为assign 属性。使用copy会更好吗?
当我使用某种方法将字符串传递给类时,如何复制字符串呢?示例:
-(id) initWithObjectTypeStr:(NSString*)inTypeStr
{
...
objectTypeStr = [NSString stringWithString:inType];
//or
objectTypeStr = [[NSString alloc] initWithString:inType];
}
objectTypeStr 未定义为属性,因此它具有默认属性(我认为是assign)。
在这种情况下使用的最佳做法是什么?
【问题讨论】:
-
请参阅我关于内存管理的博客文章 - makebetterthings.com/blogs/iphone/…
标签: objective-c nsstring