您的位置:首页 > 移动开发 > IOS开发

IOS开发中遇到的问题总结

2015-01-20 10:13 309 查看
一、No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)

出现原因:armv7s是应用在iPhone 5 A6 的架构上的

解决方式:

1、在Project target里“Architectures”设置为“Standard (armv7,armv7s)”

2、修改在Project target里“Build Settings”的“Valid Architectures”添加“i386”和“armv7”(Xcode4.6 以上版本不再支持armv6,请去掉)

3、设置”Build Active Architecture Only”为“NO”。这样你build你的项目的时候就能在iphoe5和iphoe4s里执行。

二、在支持ARC工程中编译不支持ARC的文件

出现原因:Xcode4.2(iOS 5)以后启用了ARC技术,虽然4.2以后版本仍然可以不开启ARC,但是我们在建工程的时候有时为了不想管理内存然后就启用了ARC,但是再开发过程中需要用到第三开发类库,而这些第三方类库或是没做更新而不支持ARC,然后编译时就出现下列错误:

'release' is unavailable: not available in automatic reference counting mode
ARC forbids explicit message send of 'release'
'autorelease' is unavailable: not available in automatic reference counting mode
ARC forbids explicit message send of 'autorelease'
'retain' is unavailable: not available in automatic reference counting mode
ARC forbids explicit message send of 'retain'


解决方式:

1.在targets->build phases中修改compiler Flags属性,添加:-fobjc-arc,就可以让旧的工程支持arc。

2.在targets->build phases中修改compiler Flags属性,添加:-fno-objc-arc,就可以让原来支持arc的工程不使用arc,对于大部分第三方类库来说都可以顺利编译通过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: