ios知识点总结

2018-03-12  本文已影响30人  iOS俱哥

一:内存管理

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实例方法已经被该类重载,因此运行时就会出错。

上一篇 下一篇

猜你喜欢

热点阅读