Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 返回后释放对象?_Iphone_Objective C - Fatal编程技术网

Iphone 返回后释放对象?

Iphone 返回后释放对象?,iphone,objective-c,Iphone,Objective C,假设我在方法的返回语句之前初始化了一个对象 MyObj* myObj = [[MyObj alloc] initWithOpt1:opt1 withOpt2:opt2]; return myObj; 在return语句之后可以释放它吗?在违背开始的目的之前这么做,对吗?否则,处理这个问题的最佳方法是什么?就这样做吧 return [myObj autorelease]; 就这样 自动释放正是为了解决这个问题而创建的 MyObj* myObj = [[MyObj alloc] initWith

假设我在方法的返回语句之前初始化了一个对象

MyObj* myObj = [[MyObj alloc] initWithOpt1:opt1 withOpt2:opt2];
return myObj;
在return语句之后可以
释放它吗?在违背开始的目的之前这么做,对吗?否则,处理这个问题的最佳方法是什么?

就这样做吧

return [myObj autorelease];

就这样

自动释放正是为了解决这个问题而创建的

MyObj* myObj = [[MyObj alloc] initWithOpt1:opt1 withOpt2:opt2];
return [myObj autorelease];

return [myObj autorelease];
工作它是更好的编码教育,以简单

return myObj;
然后,当您创建对象时,在对象上进行自动释放

MyObj *my_obj = [[[MyObj alloc] initWithOpt1:opt1 withOpt2:op2] autorelease];
这是因为autorelease说,当这个函数结束时,我想释放这个对象。所以使用

return [myObj autorelease]; 
这不是唯一的办法