objective-c内存管理问题

时间:2010-07-05 21:28:04

标签: objective-c

你需要发布一些非常简单的东西吗?

NSString *a = @"Hello";

//[a release];  ?

我来自一个java / c#世界,我很困惑什么时候应该发布/保留...

2 个答案:

答案 0 :(得分:2)

没有。您只需要自己release / init alloc对象或您的班级dealloc方法中的实例变量。

答案 1 :(得分:1)

不,你不需要释放一个常量的NSString,但如果你这样做,它不会引起任何问题。常量字符串是内存管理系统的特例。由于它们的内容在编译时是已知的,因此它在应用程序二进制文件本身中是静态定义的,因此它不必在运行时分配或释放。因此,它的保留和释放方法都是noops。

仅适用于常量NSStrings(以@开头的字符串)及其免费桥接表兄,常量CFStrings(使用CFSTR()宏定义)。