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

时间:2014-10-29 14:40:06

标签: ios8 nsnull

我在一个项目中有这个课程/故事板场景,在过去的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()
}

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

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

[UIPhysicalKeyboardEvent _matchesKeyCommand:]

和其他一些人喜欢它。

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

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

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

3 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:13)

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

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

                <keyCommands>
                    <keyCommand/>
                </keyCommands>

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

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

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

我发现这个问题已经被标记为已回答,但是如果原始回答(和评论)之外的其他信息对其他人有用,我会加入此问题。

答案 2 :(得分:2)

单击视图控制器,在“关键命令”下的属性检查器中,删除“在下面输入操作”条目