【问题标题】:NSRangeException from removeObjectsInRange: but passed range is within bounds来自 removeObjectsInRange 的 NSRangeException:但传递的范围在范围内
【发布时间】:2012-03-26 20:46:56
【问题描述】:

我收到以下错误,这没有任何意义。

* 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“* -[NSMutableArray removeObjectsInRange:]:范围 {11, 15} 超出范围 [0 .. 15]”

我在这里做错了什么?我在数组的范围内。删除数组中的最后一个对象会导致问题吗?

【问题讨论】:

    标签: objective-c cocoa-touch nsmutablearray nsrange


    【解决方案1】:

    NSRange 的第二个字段是长度,而不是端点。您正在尝试从索引 11 开始删除 15 个对象。

    相反,您想按照以下方式做一些事情:

    [myArray removeObjectsInRange:(NSRange){11, 5}];
    

    【讨论】:

    • @Yar:这是完全相同的文件,你知道的。 :)
    • 我知道,但我永远无法理解文档何时会相同,以及 iOS 和 Mac 何时会生成不同的文档(有时,由于方法不同等)。在这种情况下它们不是,但它们可能彼此不同吗?
    • @Yar:是的,存在奇怪的差异。这里的“基础类”部分下有一个有趣的图表:developer.apple.com/library/mac/documentation/Cocoa/Conceptual/…
    • 具有讽刺意味的是,如果您将前缀更改为 ios,该文档也不会更改;) 不过,谢谢,图 1-7 很有趣。我以为我在 iOS 上错过了更多的东西,实际上......
    • 你也可以使用 NSMakeRange(location, length) 函数来指定范围。
    猜你喜欢
    • 2015-09-11
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 2012-03-09
    • 2021-11-20
    • 2017-01-15
    • 1970-01-01
    相关资源
    最近更新 更多