大多数Apples文档似乎都避免使用自动释放的对象,尤其是在创建gui视图时,但我想知道使用自动释放对象的成本是多少?
UIScrollView *timeline = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 20, 320, 34)];
[self addSubview:timeline];
[timeline release];
Run Code Online (Sandbox Code Playgroud)
最终我应该使用一个策略,其中所有内容都是自动释放的,并且使用retain/release应该是特定情况的规则的例外吗?或者我通常应该使用自动释放的retain/release是来自[NSString stringWithEtc ...]等便利方法的返回对象的例外吗?
我已经在(Apple)示例代码中看到了两种分配内存的方式,并且我不确定我是否理解了差异和产生的行为.
// FAILS
NSMutableArray *anArray = [NSMutableArray array];
[anArray release];
// WORKS
NSMutableArray *anArray1 = [[NSMutableArray alloc] init];
[anArray release];
Run Code Online (Sandbox Code Playgroud)
通过"FAILS"我的意思是我遇到了崩溃/运行时警告等,并且并不总是在我发布后立即发布...
任何解释都赞赏.
谢谢