如果我这样做
Object * myObject = [[Object alloc]init];
[myObject release];
在下一行分配我的对象有什么不对吗
myObject = [[Object alloc]init];
再次?
答案 0 :(得分:5)
这样做是安全的。
原因是myObject
不是一个对象,它是对象的引用(或指针,如果你想要精确)。这意味着你有2个完全独立的对象,但是你忘记了对第一个对象的引用。
答案 1 :(得分:4)
完全没问题。
[myobject release];
释放myObject
指向的对象。
稍后,myobject = [[Object alloc] init]
将myobject
指向另一个对象。
答案 2 :(得分:2)
这没有错。这就是你确保不泄漏第一个物体的方法。
但是,从技术上讲,您不再分配已发布的对象。你刚刚再次使用旧指针。
Object * myObject = [[Object alloc]init];
myObject = [[Object alloc]init];
将导致您创建的第一个对象泄漏。
答案 3 :(得分:1)
是的当然。这种技术在本地方法变量中特别有用,你可以通过将它再次重新分配为新对象来重用一次声明的对象。!!