【问题标题】:Objective-C – NSString copy property memory managementObjective-C - NSString 复制属性内存管理
【发布时间】:2011-11-05 09:04:43
【问题描述】:

我在班级中有一个NSString 声明为@property (nonatomic,copy) NSString *text。当我想从我的另一个类NSString *text = self.objectInstance.text 调用的文本变量中获取这些数据时。在进行分析后,Xcode 在行上说我正在声明文本变量

1。属性返回一个具有 +1 保留计数的 Objective-C 对象

然后在那一行之后

2。对象泄露:分配的对象稍后在此执行路径中未引用,并且保留计数为 +1

我不明白的是我既不写alloc,也不写new,也不写copy,所以我不需要释放这个对象?

【问题讨论】:

  • 其实这有点奇怪。您确定您没有自己重写其中一个 getter 方法,并且这个方法返回对象的复制或保留版本吗?
  • 100% 确定我没有重写 getter 方法。

标签: objective-c memory-management properties nsstring copy


【解决方案1】:

找出问题所在。

我使用了属性名称newFoo,这让编译器认为我返回了一个新对象。

因此请注意:了解可可命名约定。

【讨论】:

  • 感谢您告知我们。永远不要忘记它!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-12
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 2011-03-17
  • 2020-01-27
  • 1970-01-01
相关资源
最近更新 更多