我正在在线使用watchOS2Sampler项目,并尝试尝试在“渐变”场景中添加一个选择器,该场景当前底部有两个按钮,中间有一个图像。我的目标是尝试使用Digital Crown来控制图像的位置。

如果将“选择器”原样添加到场景的顶部,则可以运行该程序,但是会创建一个滚动条,因此Digital Crown现在可以控制该滚动而不是控制选择器。

为了减小场景的整体高度,我尝试减小Picker的垂直尺寸。问题是,每当我执行此操作时,只要显示该场景,就会出现以下错误:

2015-11-05 14:07:32.458 watchOS2Sampler WatchKit Extension[11830:2672085] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<GradationInterfaceController 0x7c30a160> valueForUndefinedKey:]: this class is not key value coding-compliant for the key (null).'

缩小图像的大小或屏幕底部的两个按钮也会导致发生此错误。

有趣的是,尽管我仍然有相同的滚动按钮问题,但是增加任何这些元素的垂直大小都不会导致崩溃。

当XIB文件不同步时,我看到一些人报告了类似的错误,但是我不明白更改元素的大小会如何导致事物不同步,尤其是当它仅在一个方向上时。

此问题在模拟器和设备上均会发生,并且完全清理无济于事。

以下是完整的堆栈跟踪信息,以防万一:
*** First throw call stack:
(
    0   CoreFoundation                      0x00e17af4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x0087ddf4 objc_exception_throw + 50
    2   CoreFoundation                      0x00e17711 -[NSException raise] + 17
    3   Foundation                          0x004bee86 -[NSObject(NSKeyValueCoding) valueForUndefinedKey:] + 282
    4   Foundation                          0x00400060 _NSGetUsingKeyValueGetter + 105
    5   Foundation                          0x003fffef -[NSObject(NSKeyValueCoding) valueForKey:] + 288
    6   WatchKit                            0x001efe99 __48-[SPRemoteInterface handlePlist:fromIdentifier:]_block_invoke927 + 49
    7   libdispatch.dylib                   0x046db7b7 _dispatch_call_block_and_release + 15
    8   libdispatch.dylib                   0x046f940d _dispatch_client_callout + 14
    9   libdispatch.dylib                   0x046e205a _dispatch_main_queue_callback_4CF + 689
    10  CoreFoundation                      0x00d69bee __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 14
    11  CoreFoundation                      0x00d27964 __CFRunLoopRun + 2356
    12  CoreFoundation                      0x00d26d76 CFRunLoopRunSpecific + 470
    13  CoreFoundation                      0x00d26b8b CFRunLoopRunInMode + 123
    14  Foundation                          0x0043c601 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 308
    15  Foundation                          0x004e29cd -[NSRunLoop(NSRunLoop) run] + 82
    16  libxpc.dylib                        0x049de0b7 _xpc_objc_main + 486
    17  libxpc.dylib                        0x049e0e16 xpc_main + 215
    18  Foundation                          0x0060bc45 service_connection_handler + 0
    19  PlugInKit                           0x03c251f4 -[PKService run] + 582
    20  WatchKit                            0x00213f71 main + 146
    21  libdyld.dylib                       0x0471dae1 start + 1
    22  ???                                 0x00000001 0x0 + 1

更新:此处的选择器组件肯定是原因,因为删除该组件会使崩溃消失,然后我可以根据需要调整其余元素的大小。但是,没有任何东西连接到Picker组件(连接东西也无济于事),所以我不知道为什么这个元素会导致崩溃。

最佳答案

我删除了大部分界面并进行了构建,现在一切正常。知道出了什么问题本来会很高兴,但是我想在这一点上已经不再重要了。

关于xcode - 在Apple Watch Extension上缩短UI元素时出现“此类不符合键的键值编码”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33552944/

10-12 05:48