在Xcode 4.2中,@autoreleasepool
取代[pool drain];
并且仍然需要像这样分配:
Person *Jay = [[Person alloc] init];
答案 0 :(得分:4)
此@ autoreleasepool { }
相当于
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// Code benefitting from a local autorelease pool.
[pool release];
ARC仍然要求你做任何一次
[[NSString alloc] init]
或
[NSString string]
在ARC下,与休闲程序员的观点没有区别。在下面,在编译的代码中,[NSString string]
返回的对象将进入池中,然后被释放。在编译器超出范围之前,编译器将插入一个版本。
如果您不使用ARC,则稍后您必须在字符串返回的对象上调用release
。