【问题标题】:NSMutableArray contains nil pointerNSMutableArray 包含 nil 指针
【发布时间】:2013-03-21 00:46:04
【问题描述】:

我正在使用-insertObject:atIndex: 将名为DecryptedItem 的自定义类的一些实例添加到NSMutableArrayDecryptedItem 实现了自己的 -hash-isEqual: 方法,但据我所知,这与将对象添加到数组时无关。

在索引 0 处插入一个对象后,在索引 0 处插入另一个对象,在索引 1 处插入另一个对象后,我得到以下非常奇怪的行为:该数组在调试窗口中显示为 3 个元素的数组,并调用 @987654328数组上的 @ 表明它包含三个不同的对象。但是,在调试器中查看数组会发现一个对象为零!我在使用 -indexOfObject:inSortedRange:options:usingComparator: 搜索特定对象时注意到了这一点,它返回了 NSNotFound

【问题讨论】:

  • 您是如何使用将数据存储在 NSMutableArray 中的?代码?
  • 插入 nil 应该在插入期间使应用程序崩溃,除非您从当对象为 nil 时返回 NSNull 对象的方法中获取此数据。例如从 json 字符串解析的对象。
  • 请出示代码。
  • 这可能只是调试器不知何故弄糊涂了。如果描述方法显示所有三个对象,它们都在里面。

标签: iphone objective-c ipad nsmutablearray


【解决方案1】:

原来数组没有正确排序,因此-indexOfObject:inSortedRange:options:usingComparator: 无法正常工作。现在一切似乎都很好。猜猜它实际上只是调试器古怪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多