案例1:
-(id)getAnObject{
Object *someObject = [[Object alloc] init];
//doing something
return someObject;
}
案例2:
-(void)dealWithAnObject{
Object *someObject = [[Object alloc] init];
[assignTheObjectToOther someObject];
}
案例1和案例2都在XCode中有一些警告,我该怎么办才能处理这两个问题?谢谢。
答案 0 :(得分:5)
内存管理的黄金法则是:一切都需要知道它拥有哪些对象。只有你能做出这个决定。
我强烈建议您阅读Apple的memory management guide。至少两次。
针对您的具体情况:
getAnObject
不会释放它创建的对象。如果您要退货,则需要先autorelease
。
dealWithAnObject
也不会释放其对象。在使用它的函数调用之后,您可以autorelease
或release
。确保使用它的任何内容遵循相同的规则,你就可以了。