3
當我的自定義初始化程序失敗時,我應該返回nil。清理我在初始化程序中分配的任何內存的約定是什麼,我期待的會在dealloc中清理?如何在自定義初始化失敗時清理內存
這裏是一個人爲的例子:
- (id)init
{
if ((self = [super init])) {
instanceVar1 = [[NSString alloc] initWithString:@"blah"];
if (bad_thing_oh_noes) {
return nil;
}
}
return self;
}
- (void)dealloc
{
[instanceVar1 release];
[super dealloc];
}
更現實的情況下,我不能有效地檢查每個錯誤條件之前,我做分配將被反序列化含陣列等一個複雜的對象。
無論如何,我在返回nil之前清理分配的內存,在返回nil之前是否向自己發送dealloc消息,或者這些都是爲我管理的嗎?
我傻,我想我通過閱讀文件,但我錯過了回答我的問題的一部分!感謝您爲我清理這個。 :-) – Sandy
@Sandy歡迎您:) – albertamg