在 @autoreleasepool 中的代码,如果用的不是那些7788框架的,用的是自己定义的类,然后调用 alloc init 方法后的,要不要调用 autorelease 方法,不加的话会自动释放吗?是不是有ARC存在的情况下才会自动释放,没有ARC的情况下我就要再调用 autorelease 方法?
解决方案 »
- double 转nsstring
- 用16进制A码汉化遇到个问题,谁能帮我看看谢谢啦~~~~~~~
- SDWebImage异步下载图片,怎么做缓存?
- 明天起,正式从零开始搞iOS编程(05/31/2014)
- xcode现在打包没有plist文件了,那该如何用企业级账号发布应用?
- ios8.0弃用了UISearchDisplayController推荐使用UISearchController,关键是不会用啊~
- IOS上下载的WEBP图片打不开
- 关于IOS代码实现布局
- NSURLSessionDownload下载的文件在沙盒中找不到了
- IOS和变机宝
- 软件后台地址被人知道了,一直加过滤IP,怎么修改我软件的后台地址。
- 求presidents.plist文件
在oc的内存管理中,如果你能真正的理解autoreleasepool ,那么你才能理解oc的内存管理,autorelease 消息实际上是把release的调用延迟了,当我们给一个对象发送autorelease消息时,系统会把该对象放入到当前的autoreleasepool(自动释放池)中,当这个pool被释放时,该pool中所有的对象会执行release消息进么对象的释放。
对于每个runloop,系统会隐式创建一个autoreleasepool, 在这个runloop结束时,它隐式创建的autoreleasepool就会被销毁,同时这个pool中所有的对象也会被release
对于你上面的总是,通过上面的介绍,应该已经有了答案:
在非arc下,自己创建的对象,需要自己销毁。所以需要自己来对这个对象发送autorelease/release 消息。而在arc下,内存管理交给编译器,用户不用担心对象的生命周期。
我就想问一下在 arc 下我要不要调用 autorelease 方法
我就想问一下在 arc 下我要不要调用 autorelease 方法上面已经回了,在arc模式下,不需要再调用 autorelease ,即使加了,如果在开启arc的情况下,在编译时应该就会提示了,你不会编译通过的。
我就想问一下在 arc 下我要不要调用 autorelease 方法上面已经回了,在arc模式下,不需要再调用 autorelease ,即使加了,如果在开启arc的情况下,在编译时应该就会提示了,你不会编译通过的。嗯好的。谢谢你了,我os x 还没装,买电脑后装了环境自己试试。谢谢你了