1

如果我这样做

Object * myObject = [[Object alloc]init];
[myObject release];

在下一行分配我的对象有什么问题吗

myObject = [[Object alloc]init];

再次?

4

4 回答 4

5

这是安全的。

原因是它myObject不是对象,它是对象的引用(或指针,如果你想准确的话)。这意味着您有 2 个完全独立的对象,但您忘记了对第一个对象的引用。

于 2011-11-07T18:07:53.230 回答
4

完全没有问题。 [myobject release];释放 指向的对象myObject

稍后,myobject = [[Object alloc] init]myobject指向另一个对象。

于 2011-11-07T18:08:30.700 回答
2

没有什么不妥。这就是你如何确保你不会泄露你的第一个对象。

但是,从技术上讲,您并没有再次分配释放的对象。您只是再次使用旧指针。

Object * myObject = [[Object alloc]init];
myObject = [[Object alloc]init];

将导致泄漏您创建的第一个对象。

于 2011-11-07T18:07:53.497 回答
1

是的当然。这种技术在局部方法变量中特别有用,您可以通过将其重新分配为新对象来重用一次声明的对象..!!

于 2011-11-07T18:07:35.503 回答