在手动内存管理中,您将使用什么方案来自动发布
我想做好充分的准备,因为我要做一个没有ARC的项目
发布于 2015-09-24 10:34:36
当需要从方法返回对象时,通常使用autorelease,同时放弃所有权:在返回调用端(而不是创建方法)时,应该拥有该对象。
如果您只是在返回对象之前放弃所有权(使用release),则会立即解除它的分配,并且调用方无法使用它。如果不调用release,则对象从被调用的函数(实例化它)的引用计数为+1,在调用方声明所有权之后,该引用计数也没有进一步释放的机会。
因此,autorelease就像一个“延迟发布”:对象稍后会被发送一个function方法(但不是在返回它的函数之前)。
增编:
另一种方法是返回具有一致的引用计数为1的对象,并在完成时依赖调用方来释放它。
这是通过对这些方法采用预先确定的命名模式来明确的:在可可中,这些方法通常包含"alloc“、"new”、"copy“或"mutalbeCopy”等词。
资料来源:苹果的文档.
https://stackoverflow.com/questions/32758894
复制相似问题