关于ios 在引入第三方类库时与手动内存管理产生的冲突
2015-03-18 16:25
615 查看
现在的项目是手动内存管理,所以在引入第三方资源库时候,很多资源库更新以后都开始使用arc进行编码,这样就导致两种代码风格不一致,有的时候可能开发者也没有注意到这些问题,反正用的时候也没有报错,就直接使用了;但是有的时候,因为arc编码中用到了新的属性修饰符,例如weak,这时候在手动管理内存的代码中就不能编译通过,报错的内容就是:@synthesize of ‘weak’ property is only allowed in ARC or GC mode,这就是引入的arc代码在项目中的冲突,有一种解决办法就是把资源代码中的weak修饰符改为assign,但是这种方法毕竟是把别人写的代码给改了,有的时候往往会出现闪退、崩溃的问题。
比较好的解决办法就是项目配置文件->Build Phrases->Complie Sources,找到出现问题的资源库文件(比如weak修饰符所在的文件),双击Complie Files中的该文件,在空白行中写入-fobjc-arc,这样就可以有效防止该冲突。反过来有的时候,在arc代码中引入手动管理内存的代码,我们在Complie Files中为新增的资源文件增加-fno-objc-arc,这样就避免了手动管理内存的代码在arc代码中的冲突。
比较好的解决办法就是项目配置文件->Build Phrases->Complie Sources,找到出现问题的资源库文件(比如weak修饰符所在的文件),双击Complie Files中的该文件,在空白行中写入-fobjc-arc,这样就可以有效防止该冲突。反过来有的时候,在arc代码中引入手动管理内存的代码,我们在Complie Files中为新增的资源文件增加-fno-objc-arc,这样就避免了手动管理内存的代码在arc代码中的冲突。
相关文章推荐
- 引入第三方类库冲突报错
- 关于ant 打包android引入第三方类库library project的终极解决方案
- iOS关于SQLite数据库的操作(使用第三方类库FMDB)
- iOS关于SQLite数据库的操作(使用第三方类库FMDB)
- iOS 如何在一个存在多个project的workspace中引入cocoapods管理第三方类库
- IOS引入第三方冲突解决办法
- iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库
- iOS开发引入第三方类库的问题
- ios 手动引入第三方库
- yii中手动引入第三方类库
- 关于cocoapods的使用(管理ios开发第三方类库)
- iOS关于数据库的操作(使用第三方类库FMDB)
- 关于ant 打包android引入第三方类库library project的终极解决方案
- CocoaPods的使用(xcode创建的IOS应用中引入第三方类库:在同一目录下pod install/update)
- iOS关于SQLite数据库的操作(使用第三方类库FMDB)
- iOS关于数据库的操作(使用第三方类库FMDB)
- iOS开发引入第三方类库的问题
- iOS关于SQLite数据库的操作(使用第三方类库FMDB)
- iOS引入第三方库冲突duplicate symbol的问题处理
- iOS关于数据库的操作(使用第三方类库FMDB)