NSAutoreleasePool 和 @autoreleasepool blocks 区别
2013-06-28 00:30
507 查看
转载地址:http://www.cnblogs.com/PirateCaptain/articles/2506330.html
// // main.m // HelloWorld // // Created by Erica Sadun on 4/24/09. // Copyright __MyCompanyName__ 2009. All rights reserved. /** xcode4.3引入ARC,release这块就有些变化,当你使用ARC,就必须将NSAutoreleasePool的地方换成 @autoreleasepool 关于NSAutoreleasePool的解释官方的最清楚 Important If you use Automatic Reference Counting (ARC), you cannot use autorelease pools directly. Instead, you use @autoreleasepool blocks instead. For example, in place of: NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init; // Code benefitting from a local autorelease pool. [pool release]; you would write: @autoreleasepool { // Code benefitting from a local autorelease pool. } @autoreleasepool blocks are more efficient than using an instance of NSAutoreleasePool directly; you can also use them even if you do not use ARC. **/ #import <UIKit/UIKit.h> #import "HelloWorldAppDelegate.h" //如果下面第二个参数直接用nil,不用import这个Delegate.h头文件也可 int main(int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSLog(@"nil如何调用窗口呢"); int retVal = UIApplicationMain(argc, argv, nil,nil); //等效下一句,第二个nil表示就把模板生成的Delegate类作为默认参数 //int retVal = UIApplicationMain(argc, argv, nil,NSStringFromClass([HelloWorldAppDelegate class])); [pool release]; return retVal; }
相关文章推荐
- NSAutoreleasePool与autorelease 详解(一)
- Object-C中的内存管理 MRC、ARC以及Autoreleasepool的区别
- NSAutoReleasePool使用中drain和release的区别
- NSAutoReleasePool使用中drain和release的区别
- NSAutoreleasePool与autorelease 详解(二)
- @autoreleasepool在ARC和MRC下的区别
- Are @autoreleasepool Blocks More Efficient?
- 正确使用 autorelease pool blocks
- NSAutoReleasePool使用中drain和release的区别
- @autoreleasepool 代替 NSAutoreleasepool
- @autoreleasepool在ARC和MRC下的区别
- 如果autorelease NSAutoreleasePool对象会发生什么?
- NSAutoReleasePool使用中drain和release的区别
- NSAutoReleasePool使用中drain和release的区别
- NSAutoreleasePool的release和drain的区别
- Object-C中的内存管理 MRC、ARC以及Autoreleasepool的区别
- NSAutoReleasePool使用中drain和release的区别
- 关于 NSAutoreleasePool中 release 与 drain 区别
- Using Autorelease Pool Blocks
- *** __NSAutoreleaseNoPool(): Object 0x6013810 of class __NSArrayI autoreleased with no pool in place