是什么导致NSNull长度无法识别的选择器keyCommand错误

mar*_*oko 9 nsnull ios8

我有一个项目/故事板场景在一个项目,直到昨晚工作在过去4周我工作正常.

我已经成功地评论了几乎所有内容,当我点击UITextField并键入数字时,我仍然会遇到崩溃.它只在我输入值时崩溃,否则它不会崩溃.

这是我正在运行它的类:

import Foundation
import UIKit
import HealthKit
import CoreData

class WorkoutViewController: UITableViewController {

//Properties
    @IBOutlet var numberOfLapsTextField: UITextField?
    @IBOutlet var metersPerLapTextField: UITextField?
    @IBOutlet var workoutDurationTextField: UITextField?
    @IBOutlet var paceTextField: UITextField?

    var  healthStore:HKHealthStore?

override func viewDidLoad() {
        super.viewDidLoad()
}
Run Code Online (Sandbox Code Playgroud)

最初它有IBOutlets!代替 ?它具有CoreData堆栈属性,tableview背景的一些模糊背景效果,在viewDidLoad上从健康商店获取用户的权重,用于健康商店提取的谓词帮助方法以及取消和完成按钮.完成按钮从文本字段中捕获数据,进行一些计算并将数据保存到健康商店和coredata.但是所有这些都被注释掉了,只留下了上面所看到的.

我曾经设法在控制台中得到一个奇怪的堆栈跟踪(似乎不能再得到它)了:

[UIPhysicalKeyboardEvent _matchesKeyCommand:]

还有其他一些人喜欢它.

我难倒,有什么想法吗?异常断点是一个,但它只是将我引向AppDelegate类声明行,其中采用了UIResponder.我学习并重建了.我不知道还有什么可以寻找的.抓屏

我认为它是一个腐败的故事板文件,因为我已添加和删除文本字段的场景,他们都表现相同.这是我的storyboard.xml文件:

http://www.santiapps.com/iOS/Main.storyboard.xml

mar*_*oko 13

好的我删除了导航控制器和标签栏控制器并重新添加它们,问题就消失了!输入数据时不再有崩溃.这显然是一个腐败的场景,但奇怪的是,突然之间,所有uitextfields的场景都以同样的方式被破坏了.

我想补充一点,高级SO用户应该花时间与用户在投票前发布问题进行对话.或者应该允许用户对问题进行投票,因为某些人跳出结论并开始投票到一个实际上是有效问题的问题是非常不公平的.


Rob*_*sey 13

我遇到了同样神秘的NSNull length消息.当在模拟器中进行测试时,它偶尔会在一个屏幕上出现,通过反复试验,我发现只有当我按下cmd键时才会出现这种情况.

查看我的故事板源代码,我发现了以下内容:

                <keyCommands>
                    <keyCommand/>
                </keyCommands>
Run Code Online (Sandbox Code Playgroud)

我认为可让您为使用蓝牙键盘的任何人定义键盘快捷键.但是 - 这是一个空的定义,所以看起来压迫cmd导致执行的任何操作失败,因为我没有定义任何有效的快捷方式.

我完全不知道这是怎么发生的,但是如果您使用图形界面生成器UI来查看您的故事板,请转到视图控制器来解决问题并单击根视图控制器.在"属性"检查器下,有一个"键命令"部分.我想我必须在某处偶然点击+按钮.您可以选择第一个"项目"并点击-以摆脱它,问题应该消失.

或者,keyCommands直接从Storyboard源中删除该部分.

我看到这个问题已被标记为已回答,但我将其包括在内,以防原始答案(和评论)之上的其他信息对其他人有用.