类 AppDelegate: UIResponder, UIApplicationDelegate SWIFT 中的 SIGABIRT 错误
Posted
技术标签:
【中文标题】类 AppDelegate: UIResponder, UIApplicationDelegate SWIFT 中的 SIGABIRT 错误【英文标题】:class AppDelegate: UIResponder, UIApplicationDelegate SIGABIRT ERROR in SWIFT类 AppDelegate: UIResponder, UIApplicationDelegate SWIFT 中的 SIGABIRT 错误 【发布时间】:2016-06-28 00:47:13 【问题描述】:我得到了这个错误,我不知道为什么? 我今天开始学swift了
2016-06-28 02:40:03.393 Calculator[7072:173608] -[Calculator.ViewController touchDigit]: unrecognized selector sent to instance 0x7fc4a9465000
2016-06-28 02:40:03.400 Calculator[7072:173608] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Calculator.ViewController touchDigit]: unrecognized selector sent to instance 0x7fc4a9465000'
*** First throw call stack:
(
0 CoreFoundation 0x0000000100c40e65 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000102980deb objc_exception_throw + 48
2 CoreFoundation 0x0000000100c4948d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
3 CoreFoundation 0x0000000100b9690a ___forwarding___ + 970
4 CoreFoundation 0x0000000100b964b8 _CF_forwarding_prep_0 + 120
5 UIKit 0x000000010145f194 -[UIApplication sendAction:to:from:forEvent:] + 92
6 UIKit 0x00000001015ce6fc -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x00000001015ce9c8 -[UIControl _sendActionsForEvents:withEvent:] + 311
8 UIKit 0x00000001015cdaf8 -[UIControl touchesEnded:withEvent:] + 601
9 UIKit 0x00000001014ce49b -[UIWindow _sendTouchesForEvent:] + 835
10 UIKit 0x00000001014cf1d0 -[UIWindow sendEvent:] + 865
11 UIKit 0x000000010147db66 -[UIApplication sendEvent:] + 263
12 UIKit 0x0000000101457d97 _UIApplicationHandleEventQueue + 6844
13 CoreFoundation 0x0000000100b6ca31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
14 CoreFoundation 0x0000000100b6295c __CFRunLoopDoSources0 + 556
15 CoreFoundation 0x0000000100b61e13 __CFRunLoopRun + 867
16 CoreFoundation 0x0000000100b61828 CFRunLoopRunSpecific + 488
17 GraphicsServices 0x0000000105256ad2 GSEventRunModal + 161
18 UIKit 0x000000010145d610 UIApplicationMain + 171
19 Calculator 0x0000000100a6361d main + 109
20 libdyld.dylib 0x000000010348992d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
我的主班只有这个简单的方法不知道发生了什么
import UIKit
internal class ViewController : UIViewController
@IBAction internal func touchDigit(sender: UIButton)
谢谢
【问题讨论】:
发布问题时,请考虑一下。您只需使用零格式或检查标点符号等剪切和粘贴代码。touchDigit
方法中有什么?
【参考方案1】:
尝试在情节提要/xib 中取消绑定您的操作,然后重新绑定它。
我根据错误中缺少的:
猜测(它应该是[ViewController touchDigit:]
,因为有一个参数),你添加了参数sender
在设置它之后你的故事板。
我自己对此进行了测试,当重新绑定它时,故事板将其显示为touchDigitWithSender
,尽管它保留了名称touchDigit
。可能是一些奇怪的 Swift/Objective-C 互操作性问题。
附: internal
是默认访问说明符,您不必将其添加到每个声明中
【讨论】:
非常有用的答案 - 我刚刚将我的项目更新到 Swift 3 并且一直想知道为什么现在按下第一个按钮会使应用程序崩溃。这解决了它。以上是关于类 AppDelegate: UIResponder, UIApplicationDelegate SWIFT 中的 SIGABIRT 错误的主要内容,如果未能解决你的问题,请参考以下文章
为啥类 AppDelegate 继承自 UIResponder?
类 AppDelegate: UIResponder, UIApplicationDelegate SWIFT 中的 SIGABIRT 错误
AppDelegate和ViewController类之间的iOS区别[关闭]