我当前有一个字符串数组,我通过调用 -componentsJoinedByString:
方法从该数组中获取一个 NSString 对象。示例:
NSString *someString = [[NSString alloc] initWithString: [myStrings componentsJoinedByString:@","];
由于 -componentsJoinedByString:
返回一个 NSString,我假设它不是我“拥有”的,因此我刚才所做的应该没问题?或者我必须这样做:
NSString *toDelete = [myStrings componentsJoinedByString:@","];
NSString *someString = [[NSString alloc] initWithString:toDelete];
[toDelete release];
非常感谢您帮助澄清这一点!
最佳答案
你写的第一个例子是正确的,尽管在实践中,写 NSString *someString = [[myStrings componentsJoinedByString:@","] copy];
会更清楚。 (请注意,这将被保留,因此您必须在将来的某个时候释放它。
如果您在内存管理方面遇到问题,this page可能有帮助。学习规则并不太难,但是在学习之前你会遇到很多问题。
关于objective-c - 我应该明确释放吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/459820/