objective-c中自己创建的对象为什么不能调用release

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
上一篇:windows系统调用 互斥体mutex


下一篇:Vue 学习笔记(2021.11.9~11.10)