objective-c - 我应该明确释放吗?

标签 objective-c cocoa

我当前有一个字符串数组,我通过调用 -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/

相关文章:

objective-c - 是否可以让 Siri 在我的应用程序中执行任务/操作?

objective-c - 如何使大纲 View 像表格 View 一样可重新排序?

objective-c - iSight 环境传感器

objective-c - 传递一个指向属性的指针? fmdb 和自定义类

iphone - Keynote iPad 应用程序的 URL 方案引用?

ios - UITableView,中断超过 6 行

cocoa - 如何用动画实现NSTrackingArea的mouseEntered/Exited?

iphone - 重用 subview

cocoa - XIB 实例化对象的 IBOutlet 为零

ios - 与 NSURLConnection 一起使用时如何计算 MBProgressHUD 模式的进度?