一:内存管理
1.autorelease NSAutoreleasePool对象
提问:如果autorelease NSAutoreleasePool对象会如何?
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc]init];
[pool autorelease];
回答:发生异常
*** Terminating app due to uncaught exception 'NSInvalidArgumentException'
reason: '*** -[NSAutoreleasePool autorelease]: Cannot autorelease an autorelease pool'
通常在使用Objective-C,也就是Foundation框架时,无论调用哪一个对象的autorelease实例方法,实现上是调用的都是NSObject类的autorelease方法。但是对于NSAutoreleasePool类,autorelease实例方法已经被该类重载,因此运行时就会出错。
网友评论