由于NSString字符串是不可变的,那么stringWithString:类方法的值是什么?
当与NSMutableString一起使用时,我得到了该实用程序,只是我没有看到与NSString类一起使用的实用程序。
发布于 2009-10-24 07:25:44
您可能有一个想要复制的NSMutableString (或一些自己开发的NSString子类)。
NSMutableString *buffer = [NSMutableString string];
// do something with buffer
NSString *immutableStringToKeepAround = [NSString stringWithString:buffer];当然,您也可以只复制一份:
NSMutableString *buffer = [NSMutableString string];
// do something with buffer
NSString *immutableStringToKeepAround = [[buffer copy] autorelease];但您拥有该副本,并且必须释放或自动释放它。
发布于 2009-10-24 07:07:59
正如"Andy“在#318666中指出的,它与内存管理有关,引用:
initWithString和stringWithString的不同之处在于stringWithString返回一个自动释放的指针。这意味着你不需要专门释放它,因为下次自动释放池清理任何自动释放的指针时,它将被处理。
另一方面,initWithString返回一个保留计数为1的指针-您确实需要在该指针上调用release,否则将导致内存泄漏。
(摘自here)
发布于 2009-10-24 07:08:52
返回通过从另一个给定字符串中复制字符而创建的字符串
[NSString stringWithString:@"some string"]它等同于
[[[NSString alloc] initWithString:@"some string"] autorelease]https://stackoverflow.com/questions/1616348
复制相似问题