使用Xcode时遇到的一些小问题
2015-08-18 00:04
627 查看
今天在用Xcode写代码的时候突然发现了一个问题,于是就准备写一个文章来记录和总结一下在Xcode里面遇到的问题。这篇文章会经常补充。
在iOS模拟器启动时无法启动的问题。
这个问题很常见,几乎像我一样刚开始学iOS开发不久的新人们都会遇到。其实原因很简单,但是也很容易忽视。(在Stanford iOS开发的课里面也见到过。)这时候会在终端出现的码类似如下:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[test.ViewController didClickTestButton:]: unrecognized selector sent to instance 0x7feff247a680' *** First throw call stack: ( 0 CoreFoundation 0x0000000108d3cc65 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x000000010a8a7bb7 objc_exception_throw + 45 2 CoreFoundation 0x0000000108d440ad -[NSObject(NSObject) doesNotRecognizeSelector:] + 205 3 CoreFoundation 0x0000000108c9a13c ___forwarding___ + 988 4 CoreFoundation 0x0000000108c99cd8 _CF_forwarding_prep_0 + 120 5 UIKit 0x00000001095dcd62 -[UIApplication sendAction:to:from:forEvent:] + 75 6 UIKit 0x00000001096ee50a -[UIControl _sendActionsForEvents:withEvent:] + 467 7 UIKit 0x00000001096ed8d9 -[UIControl touchesEnded:withEvent:] + 522 8 UIKit 0x0000000109629958 -[UIWindow _sendTouchesForEvent:] + 735 9 UIKit 0x000000010962a282 -[UIWindow sendEvent:] + 682 10 UIKit 0x00000001095f0541 -[UIApplication sendEvent:] + 246 11 UIKit 0x00000001095fdcdc _UIApplicationHandleEventFromQueueEvent + 18265 12 UIKit 0x00000001095d859c _UIApplicationHandleEventQueue + 2066 13 CoreFoundation 0x0000000108c70431 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 14 CoreFoundation 0x0000000108c662fd __CFRunLoopDoSources0 + 269 15 CoreFoundation 0x0000000108c65934 __CFRunLoopRun + 868 16 CoreFoundation 0x0000000108c65366 CFRunLoopRunSpecific + 470 17 GraphicsServices 0x000000010cd10a3e GSEventRunModal + 161 18 UIKit 0x00000001095db8c0 UIApplicationMain + 1282 19 test 0x0000000108b554e7 main + 135 20 libdyld.dylib 0x000000010afdd145 start + 1 21 ??? 0x0000000000000001 0x0 + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException
这是因为缺少了某个控件的关联,如图:
我们只需要消除掉这个关联,然后重新添加关联即可。
Xcode警示找不到某个成员
这个是我今天遇到的问题,这个我个人认为是Xcode的一个bug吧。我的代码是这样的:
func givePeopleScore(forNumber num: Int, andScore score: Int) { roll[num].score = (roll[num].score * roll[num].callCount + Double(score)) / Double(roll[num].callCount + 1) }
(其中roll[num].score 为Double型,roll[num].callCount为Int型。)警示的根源其实在于Double型和Int型相乘, *运算符无法做到。所以只要类型转换即可, 即:
func givePeopleScore(forNumber num: Int, andScore score: Int) { roll[num].score = (roll[num].score * Double(roll[num].callCount) + Double(score)) / Double(roll[num].callCount + 1) }
settings.bundle 相关的settings没有在iOS模拟器里面显示(只显示了定位服务)。
我很诧异的发现了这个问题,我不知道其中的原因是什么,但是解决方法是:删除原有的app,再重新run一下,就可以看到了。但是,如果停止了之后再run,没有删除,那样就又看不到了。。。
相关文章推荐
- xcode 4 制作静态库图文详解
- 解决 Xcode 6-Beta2 智能提示bug
- XCode编译速度慢的处理方法
- mac git xcrun error active developer path 错误
- Xcode使用教程详细讲解(全)
- Cocos2d开发1:Xcode与TexturePacker的集成
- windows下objective-c的cocoa框架编程,可以有图形界面哟
- Xcode5.0.2 资源更新问题
- Mac OS X上搭建本地SVN服务器
- xcode 调试技巧
- xcode 每次 全部 重新 编译 的问题
- Xcode快捷键大全
- Xcode4快速Doxygen文档注释 — 简明图文教程(3分钟后爽歪歪)
- XCode 4.2 新功能 - Storyboard
- Xcode 和 SDK各个版本的下载地址
- 高效使用你的XCode
- Xcode Debugging
- (转) Xcode 4.1/4.2/4.3 免证书(iDP)开发+真机调试+生成IPA全攻略(99美金省了)
- xcode armv6 armv7 armv7s arm64
- Xcode 的正确打开方式——Debugging