Iphone 解除锁定另一个类的对象

Iphone 解除锁定另一个类的对象,iphone,memory-management,dealloc,Iphone,Memory Management,Dealloc,嗨,我通常创建其他类的对象。你能告诉我这个是否在自动发布池中吗?或者我们应该手动释放它。如果您初始化复制或新建它们,则必须解除分配它们如果您将自动释放与分配一起,则它们将自动释放 比如说 Foo *foo = [[Foo alloc] init]; //you'll have release it somewhere yourself 及 简单的情况是:如果您使用init,您负责通过调用release或调用autorelease来释放它 e、 g 或者如果你要把它给别人 NSString *m

嗨,我通常创建其他类的对象。你能告诉我这个是否在自动发布池中吗?或者我们应该手动释放它。

如果您初始化复制或新建它们,则必须解除分配它们如果您将自动释放与分配一起,则它们将自动释放

比如说

Foo *foo = [[Foo alloc] init]; //you'll have release it somewhere yourself


简单的情况是:如果您使用init,您负责通过调用release或调用autorelease来释放它

e、 g

或者如果你要把它给别人

NSString *myString = [NSString alloc] init]; // This needs releasing
...
return [myString autorelease]; // You are finished with it but someone else might want it
然而,还有一些其他情况

NSString *myString = [NSString stringWithFormat:@"hi"];
此对象已在自动释放池中-不要释放它

NSString *secondString = [myString copy];
此对象需要释放-它不是自动释放的


经验法则:名称中包含init、copy或new的任何内容-您创建了它,您就发布了它。其他任何内容都将自动删除。

您需要显示一些代码或更好地解释您的问题,或者两者兼而有之。您创建的某些对象可能会自动删除,其他对象可能不会自动删除…经验法则不太正确:不是
init
而是
alloc
需要发布,另外它缺少
new
。Blast,我总是忘记
new
:(我编辑了我的答案,谢谢!
NSString *myString = [NSString stringWithFormat:@"hi"];
NSString *secondString = [myString copy];