我在swift中编写应用程序,当我在iPhone模拟器上运行测试应用程序时,一切正常,但我尝试向右滑动,这是我添加的一个手势,以便转到下一页(View Controller Two)它崩溃并在控制台日志中显示此错误报告.
2014-10-18 12:07:34.400 soundtest[17081:818922] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<soundtest.ViewControllerTwo 0x7f92f1f20090> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key sfdfa.'
*** First throw call stack:
(
0 CoreFoundation 0x00000001067813f5 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001082afbb7 objc_exception_throw + 45
2 CoreFoundation 0x0000000106781039 -[NSException raise] + 9
3 Foundation 0x0000000106b984d3 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259
4 CoreFoundation 0x00000001066cb400 -[NSArray makeObjectsPerformSelector:] + 224
5 UIKit 0x00000001072ce97d -[UINib instantiateWithOwner:options:] + 1506
6 UIKit 0x000000010712f698 -[UIViewController _loadViewFromNibNamed:bundle:] + 242
7 UIKit 0x000000010712fc88 -[UIViewController loadView] + 109
8 UIKit 0x000000010712fef9 -[UIViewController loadViewIfRequired] + 75
9 UIKit 0x000000010713038e -[UIViewController view] + 27
10 UIKit 0x00000001076cd83f -[_UIFullscreenPresentationController _setPresentedViewController:] + 65
11 UIKit 0x000000010710bc49 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 105
12 UIKit 0x000000010713c121 -[UIViewController _presentViewController:withAnimationController:completion:] + 1746
13 UIKit 0x000000010713e461 __62-[UIViewController presentViewController:animated:completion:]_block_invoke + 132
14 UIKit 0x000000010713e385 -[UIViewController presentViewController:animated:completion:] + 229
15 UIKit 0x00000001073bb9d6 _UIGestureRecognizerSendActions + 262
16 UIKit 0x00000001073ba679 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 532
17 UIKit 0x00000001073bf296 ___UIGestureRecognizerUpdate_block_invoke662 + 51
18 UIKit 0x00000001073bf192 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 254
19 UIKit 0x00000001073b520d _UIGestureRecognizerUpdate + 2796
20 UIKit 0x00000001070520a6 -[UIWindow _sendGesturesForEvent:] + 1041
21 UIKit 0x0000000107052cd3 -[UIWindow sendEvent:] + 667
22 UIKit 0x000000010701fae1 -[UIApplication sendEvent:] + 246
23 UIKit 0x000000010702cbad _UIApplicationHandleEventFromQueueEvent + 17370
24 UIKit 0x0000000107008233 _UIApplicationHandleEventQueue + 1961
25 CoreFoundation 0x00000001066b6ad1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
26 CoreFoundation 0x00000001066ac99d __CFRunLoopDoSources0 + 269
27 CoreFoundation 0x00000001066abfd4 __CFRunLoopRun + 868
28 CoreFoundation 0x00000001066aba06 CFRunLoopRunSpecific + 470
29 GraphicsServices 0x000000010a1699f0 GSEventRunModal + 161
30 UIKit 0x000000010700b550 UIApplicationMain + 1282
31 soundtest 0x000000010624503e top_level_code + 78
32 soundtest 0x000000010624507a main + 42
33 libdyld.dylib 0x000000010ae4a145 start + 1
34 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
Run Code Online (Sandbox Code Playgroud)
Tra*_*app 378
CMYR - "如果您已将按钮连接到不再存在(或已重命名)的IBAction,他也可能发生"
如果您遇到此问题,请确保转到Main.storyboard,右键单击电话号码顶部的黄色框图标(视图控制器),然后用黄色标记删除插座.
在这样的实例中发生的事情是你可能命名一个动作,然后重命名它.您需要删除旧名称,如果这是唯一的问题将立即开始在SIM中!

Sid*_*war 77
你有没有设置OS_ACTIVITY_MODE变量?要检查是否设置了此变量(并将其关闭),请在Xcode 9中执行以下操作:
Select from Xcode menu Product -> Scheme -> Edit Scheme..
Select the Run scheme and look under Arguments.
If you see the OS_ACTIVITY_MODE variable checked, deselect it
Ahm*_*tfy 65
在Xcode 9和Swift 4中:
打印异常堆栈以了解异常的原因:
添加(+)添加异常断点.
选择新断点,按住Control键,编辑断点.
其他解决方案并不适用于我,这是我的.在Swift 2.3传统模式下运行时,它仅适用于Xcode 8:
看起来Interface Builder正在尝试重命名应该连接到按钮的方法.
解决方案(解决方法)是手动将方法参数名称替换为_:
@IBAction func editPictureTapped(sender: UIButton) { // not working
print("Tapped")
}
Run Code Online (Sandbox Code Playgroud)
改为:
@IBAction func editPictureTapped(_: UIButton) { // working OK
print("Tapped")
}
Run Code Online (Sandbox Code Playgroud)
就我而言,我正在调用委托方法,但未声明该方法。
此错误是通用错误,可能由于多种原因而出现。确保您没有禁用日志以实际查看发生了什么。如果已禁用,请在方案中启用OS_ACTIVITY_MODE。您可能已禁用它,以防止出现许多不相关的日志,但是它们很方便。
您还可以通过添加异常断点来更详细地跟踪原因po $arg1。正如艾哈迈德·洛特菲(Ahmed-Lotfi)所述
这是您可以通过的常见清单。
2) Check if you have renamed an IBOutlet and calling it
3) Check if you have renamed a method name or the method doesn't exist
4) Check if you are trying to add or remove any view from hierarchy
5) Check for any missing framework or library
6) Check for any missing flag in the Proejct Setting (-obj) or any other linker flag etc.
Run Code Online (Sandbox Code Playgroud)
也可能是错误的 Segue 标识符名称。例如——
performSegueWithIdentifier("wrongSegueName", sender: self)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
320917 次 |
| 最近记录: |