dealloc方法,本就不应该手动调用.
你自己创建的对象,看你代码怎么写的了. 例子: NSString *str1 = [NSString stringWithString:@"abc"]; NSString *str2 = [[NSString alloc]initWithString:@"abc"];
str1是用类方法构建的,在我们的代码里它没有用到alloc这个方法, 所以你就不能再对str1进行release操作了.
相反, str2,它在生成时,我们用了alloc方法,那么回收的时候, 要对应的写上release, 或者autorelease.
所以,简单的记法就是: 对于alloc,copy 出来的对象,都要进行release/autorelase 否则不要. 另外一条,所有对象的dealloc方法,都不能直接调用.
自己通过alloc 和init创建的,可以release。 例如: UIVIEW * selfView = [UIView alloc] initWith.......]; //这里是需要你自己release的。
UIView * selfView = [UIView viewWithTag:]; //这里直接引用了类的成员消息。不需要你release。
永远不要调用dealloc
|
请发表评论