【问题标题】:What causes "NSScanner: nil string argument"?是什么导致“NSScanner:零字符串参数”?
【发布时间】:2011-10-29 00:56:35
【问题描述】:

我在将数据保存到核心数据时收到此消息。

NSScanner: nil string argument

我没有使用任何 NSScanner 方法。它是从哪里来的?

这是一个错误?我该怎么办?

谢谢你的帮助。

【问题讨论】:

  • 在你的所有日期上放一些刹车点和一些日志,看看什么对象是 nil
  • THX。我发现我保存了我在 IB 中删除的 textfiled 值。

标签: iphone ios nsscanner


【解决方案1】:

根据经验,我可以说带有nil 字符串的-[NSDecimalNumber initWithString:]+[NSDecimalNumber decimalNumberWithString:] 是导致该日志消息的原因之一。

-[NSScanner initWithString:] 上设置断点开始;如果您没有以这种方式捕捉到它,那么请打破您可能创建扫描仪的其他方式,例如+scannerWithString:-[NSConcreteScanner initWithString:]。这就是我清除不需要的日志语句的方式。

【讨论】:

  • Jep,我遇到了问题,尝试使用 nil 字符串创建 NSDecimalNumber 会记录此警告。
  • 如果你对 NSLog 的使用很少,你也可以在 NSLog 上中断,这是用来产生错误信息的。
  • @GuillaumeAlgis 寻求对您之前从我这里给出的一些答案投赞成票!您对 NSLog 的评论节省了我的工作时间!!!
【解决方案2】:

我在 iOS 9 和 iOS 10 上遇到过这个问题,但 iOS 11 工作正常,我通过删除 dealloc 中使用 KVO 的观察者解决了这个问题。

如:

- (void)dealloc {
[self.collectionView removeObserver:self forKeyPath:@"contentSize"];
}

【讨论】:

    【解决方案3】:

    我有相同的崩溃日志NSScanner: nil string argument

    这是我的情况

    • 在设备上一切正常。
    • dequeueReusableCellWithIdentifier 仅在模拟器上崩溃

    我解决了

    Product->Clean 然后重建。一切对我来说都很好。我不知道为什么会这样。

    【讨论】:

      【解决方案4】:

      我收到了这个崩溃错误,但不是关于 nil string 问题。 我的原因是我在情节提要中使用了一个动态单元格,但在属性检查器中设置了Static Cells。我把那个属性改成Dynamic Prototypes,解决了问题。

      【讨论】:

        【解决方案5】:

        FWIW,我在构建核心数据应用程序时收到了这条消息。

        这是由于我在模拟器中重新构建和运行应用程序,它有效地杀死了你正在运行的进程,而无需通过任何退出方法。

        根据您保存托管对象上下文的时间/地点,您可能会在某处留下不完整的托管对象,然后当应用程序重新启动并返回半成品对象时,期望找到值的扫描仪将一无所有从商店。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-05
          • 1970-01-01
          • 2011-10-14
          • 1970-01-01
          • 1970-01-01
          • 2017-09-20
          相关资源
          最近更新 更多