如果我这样做
Object * myObject = [[Object alloc]init];
[myObject release];
在下一行分配我的对象有什么问题吗
myObject = [[Object alloc]init];
再次?
如果我这样做
Object * myObject = [[Object alloc]init];
[myObject release];
在下一行分配我的对象有什么问题吗
myObject = [[Object alloc]init];
再次?
这是安全的。
原因是它myObject
不是对象,它是对象的引用(或指针,如果你想准确的话)。这意味着您有 2 个完全独立的对象,但您忘记了对第一个对象的引用。
完全没有问题。
[myobject release];
释放 指向的对象myObject
。
稍后,myobject = [[Object alloc] init]
将myobject
指向另一个对象。
没有什么不妥。这就是你如何确保你不会泄露你的第一个对象。
但是,从技术上讲,您并没有再次分配释放的对象。您只是再次使用旧指针。
Object * myObject = [[Object alloc]init];
myObject = [[Object alloc]init];
将导致泄漏您创建的第一个对象。
是的当然。这种技术在局部方法变量中特别有用,您可以通过将其重新分配为新对象来重用一次声明的对象..!!