我是否需要释放使用@"..."生成的NSString?

Sam*_*Lee 17 objective-c

如果我使用下面的代码创建一个NSString,我是否需要释放someString?

NSString *someString = @"somestring";
Run Code Online (Sandbox Code Playgroud)

Bri*_*ell 20

不,它是一个编译时常量字符串对象,因此不需要释放.它是char*c ="hello world"的道德等价物 - 其中字符串hello world在全局数据中,并且您将此数据的地址分配给指针c.


Dav*_*ong 15

如果您通过包含alloc,retaincopy,或以new(NARC ="narc")开头的方法调用创建了一个对象,那么您负责releasing该对象.如果不是这种情况,那么您可以忽略该对象.

所以在字符串的情况下:

NSString * myString = @"This is a string";
Run Code Online (Sandbox Code Playgroud)

我没有看到NARC方法的调用,所以你不负责释放它.这真的很简单.