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

iOS开发:常见问题及解决方案(持续更新...)

2010-03-18 21:21 766 查看
====================================================================================

*********************************************************************************************************************

====================================================================================

========================错误分类:固件相关============================================

====================================================================================

*********************************************************************************************************************

====================================================================================

1、错误提示:iPhone/iPod Touch: application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv6 (-19033)

解决方法:Target->Build Settings->Architectures->Standard(armv7)->Other...->删掉原来的内容,然后逐个添加"armv6"和"armv7"(注意顺序);Build Active Architecture Only选择Yes

2、错误提示:安装到老的iOS设备出错--->发生未知错误(0xE8003FFE)

解决方法:ipa不支持老的设备(armv6),在打包的时候做如下改动:Target->Build Settings->Architectures->Standard(armv7)->Other...->删掉原来的内容,然后逐个添加"armv6"和"armv7"(注意顺序);Build Active Architecture Only选择Yes

3、错误提示:warning: iPhone apps with a deployment target lower than 4.3 should include an armv6 architecture (current IPHONEOS_DEPLOYMENT_TARGET = "4.0", ARCHS = "armv7").

解决方法:iOS版本低于4.3,应该包含armv6,解决方法同上,注意armv6和armv7的顺序

====================================================================================

====================================================================================

*********************************************************************************************************************

====================================================================================

========================错误分类:界面显示=============================================

====================================================================================

*********************************************************************************************************************

====================================================================================

iOS开发问题:UIWindow中addSubView后UIView不能旋转

因为交互的要求,跑在ipad上的程序必须以横版且仅以横版的模式运行。按说这应该是比较简单的事情:在plist或者工程设置中设一下程序起始方向和所支持的方向(Landscape),同时再在对应的ViewController中处理一下shouldAutorotateToInterfaceOrientation函数即可。但是却出了如下的问题:

在UIWindow中添加了两个ViewController,并显示后一个ViewController的视图,结果视图并没有被旋转成横版,仍旧按照竖版来显示。当然也有人给出了解决方案:给UIWindow设置一个rootViewController,尔后添加的所有ViewController都以rootViewController的subview形式添加。就连苹果官方的的Q&A也推荐这种做法: 《Why
won’t my UIViewController rotate with the device?》至于原因,官方的Q&A讲的很简单:如果往一个UIWindow里面添加了两个以上的view,那么后面添加的view就会收不到旋转的事件,于是无法正常调整视图的方向 —– 只有第一个加入到UIWindow的view才会进行旋转。

相关问题的讨论:

http://stackoverflow.com/questions/1632117/iphone-in-landscape-only-after-first-addsubview-uitableviewcontroller-doesnt

http://stackoverflow.com/questions/2508630/orientation-in-a-uiview-added-to-a-uiwindow

http://stackoverflow.com/questions/1484799/only-first-uiview-added-view-addsubview-shows-correct-orientation

http://stackoverflow.com/questions/1371007/difficulty-with-apps-with-a-forced-landscape-orientation

====================================================================================

====================================================================================

*********************************************************************************************************************

====================================================================================

========================错误分类:Cocos2D============================================

====================================================================================

*********************************************************************************************************************

====================================================================================

cocos2d-2.0-x-2.0.2

错误提示:error C2440: “类型转换”: 无法从“void (__thiscall MoveController::* )(cocos2d::CCTime)”转换为“cocos2d::SEL_SCHEDULE”

1> 指向成员的指针有不同的表示形式;无法在它们之间进行类型转换

解决方法:cocos2d-2.0-x-2.0.2的schedule有点改变,目标方法的参数不是ccTime 而是float,如:原来_keepDoing(CCTime dt),改为_keepDoing(float dt)即可

xcode报错,截图:



出现这个错误的原因是在.h文件里声明了一个方法,但是没有在相应的.cpp文件里面实现。(截图中选中的方法未实现)

解决方法:在响应的.cpp文件里声明一下

====================================================================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: