ios-转为ARC之后出现了警告

问题描述

转为ARC之后出现了警告
使用下面这行代码:

NSArray *emailArray = (__bridge NSArray *)ABMultiValueCopyArrayOfAllValues(emailProperty);

现在使用ARC了,但是解析之后给出了警告:

Potential leak of object emailArray

应该怎么解决呢?谢谢。

解决方案

这种情况下使用 __bridge_transfer :

NSArray *emailArray = (__bridge_transfer NSArray *)ABMultiValueCopyArrayOfAllValues(emailProperty);

解决方案二:
难说,__bridge虽然经常添加,但是也不太懂它的意思。
如果是我的话,我会先尝试用@autoreleasepool {} 把上面的代码所在的函数括起来试试,因为开线程或者异步调用代码是无法使用主线程的autoreleasepool的,需要在线程内部手工调用。

时间: 2025-01-20 15:09:00

ios-转为ARC之后出现了警告的相关文章

iOS 提交svn后程序有警告,cocospod管理的三方库,所有库内的文件都报警如下

问题描述 iOS 提交svn后程序有警告,cocospod管理的三方库,所有库内的文件都报警如下 xxx文件 is blocking item under version control 不影响使用和提交svn,但是程序中一堆警告,求教解决办法

ios-有关IOS使用ARC开发问题

问题描述 有关IOS使用ARC开发问题 想问一个特别弱的问题,如果在一个循环中创建的对象什么时候被release. ARC中. while(true){ NSData *data = [NSData dataWithBytes:buff length:size]; } 这时的*data什么时候release? 解决方案 释放掉buff,data就释放了 解决方案二: 循环结束, 等到函数再次调度就会检查内存,释放不需要的内存

iOS开发入门:响应内存警告

好的应用应该在系统内存警告情况下释放一些可以重新创建的资源.在iOS中我们可以在应用程序委托对象.视图控制器以及其它类中获得系统内存警告消息. 1.应用程序委托对象 在应用程序委托对象中接收内存警告消息,需要重写applicationDidReceiveMemoryWarning:方法.AppDelegate的代码片段: - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { NSLog(@"AppDel

IOS环信demo里的警告会影响上线吗?

问题描述 如图的警告. 解决方案 不会.另外,你的warning是因为你选用的iOS版本高于这些方法所在的版本了.去warning有2个方法,1.targets -> General -> deployment target 选择到报warning方法所在的版本.2.弃用这些方法,改用对应的新方法.解决方案二:SDK中的警告不影响上线的

手把手教你ARC——iOS/Mac开发ARC入门和使用

本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和讨论.请不要将本文的部分或全部内容用于商用,谢谢合作. 欢迎转载本文,但是转载请注明本文出处:http://www.onevcat.com/2012/06/arc-hand-by-hand/ 本文适合人群:对iOS开发有一定基础,熟悉iOS开发中内存管理的Reference Counting机制,对ARC机制有听闻很向往但是一直由于种种原因没有使用的童鞋.本文将从ARC机理入手对这个解放广大iOS开发者

详解iOS应用开发中的ARC内存管理方式_IOS

提示:本文中所说的"实例变量"即是"成员变量","局部变量"即是"本地变量" 零.简介ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain.release.autorelease语句.你不再需要担心内存管理,因为编译器为你处理了一切 注意:ARC 是编译器特性,而不是 iOS 运行时特性(除了weak指针系统),它也不是类似于其它语言中的垃圾收集器.因此 ARC 和

iOS ARC 内存管理要点

前言 在讨论 ARC 之前,我们需要知道 Objective-C 采用的是引用计数式的内存管理方式,这一方式的特点是: 自己生成的对象自己持有.比如:NSObject * __strong object = [NSObject alloc] init];. 非自己生成的对象自己也能持有.比如:NSMutableArray * __strong array = [NSMutableArray array];. 自己持有的对象不再需要时释放. 非自己持有的对象自己无法释放. 而 ARC 则是帮助我们

Xcode 升级后,常常遇到的遇到的警告、错误,解决方法(转)

从sdk3.2.5升级到sdk 7.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了.1,警告:"xoxoxoxo"  is deprecated解决办法:查看xoxoxoxo的这个方法的文档,替换掉这个方法即可. 2,警告:Declaration of "struct sockaddr" will not be visible outside of this function解决办法:在你的开源.m文件中添加 #import 3,警告:Implicit conv

ios应用相关的性能优化及参考文档

ios app programming guide:  https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/Introduction/Introduction.html http://www.cocoachina.com/newbie/tutorial/2013/0412/5980.html   中级 http://www.cocoachina.com/n