如果我在一句话中声明了一个带有alloc和retain的NSArray,那么我是否应该释放NSArray对象两次(即[arrayObject release]两次)?
发布于 2010-02-21 23:36:30
如果您正在创建一个alloc和retain在同一行的NSArray,那么您可能做错了什么。
对象的保留计数为+1,因此也不需要对其调用retain。
直接回答你的问题;是的,你必须release它两次。一次是因为您创建了对象,另一次是因为您retain了它。但我会问为什么你一开始就需要保留一段额外的时间。
发布于 2010-02-23 06:05:10
你不需要保留它。当您分配/init时,您已经保留或取得了一个对象的所有权。重新访问Memory Management Programming Guide for Cocoa。
发布于 2010-02-21 21:06:13
不,您必须为每个分配和每个保留释放对象。(而且无论如何都不能分配一个对象超过1次。)
https://stackoverflow.com/questions/2305905
复制相似问题