LaN*_*LaN 5 memory-management objective-c clang-static-analyzer
正如之前的Cocoa Memory Management Rules中所述
如果使用名称以"alloc"或"new"开头或包含"copy"(例如,alloc,newObject或mutableCopy)的方法创建对象,或者向其发送保留消息,则获取对象的所有权.
在2010年12月之后没有看过它,但从那时起已经改变了
使用名称以"alloc","new","copy"或"mutableCopy"开头的方法(例如,alloc,newObject或mutableCopy)"创建"对象.
请注意,现在需要将"copy"作为前缀.这导致Clang静态分析器发出一些与内存相关的警告:(.在搜索了互联网之后,我还没有得出结论,为什么这会改变,因为这是iOS内存管理的基础之一.
有人知道为什么吗?谢谢!
有些方法在文本中包含"复制",但显然不是复制方法.例如,+[NSData dataWithBytesNoCopy:length:].这是当然的,可以使用注解静态分析来通知非标准行为,但总的来说,我怀疑,几乎没有人(自己除外)曾经写道,没下手拷贝的方法,copy或者mutableCopy,所以他们决定只是简化事情.
坦率地说,我很高兴,因为我遇到了相反的问题,其中一个方法包含"复制"一词,但并不打算返回一个拥有的参考.
| 归档时间: |
|
| 查看次数: |
713 次 |
| 最近记录: |