你知道为什么我无法获取一个我确定存在于数组中的对象的索引吗?而是得到了nil。
(lldb) po newItem
<ReceiptItem: 0x16a428b0>
(lldb) po self.items
<__NSArrayM 0x169bf0e0>(
<ReceiptItem: 0x16a428b0>
)
(lldb) po [self.items indexOfObject:newItem]
<nil>
谢谢
你知道为什么我无法获取一个我确定存在于数组中的对象的索引吗?而是得到了nil。
(lldb) po newItem
<ReceiptItem: 0x16a428b0>
(lldb) po self.items
<__NSArrayM 0x169bf0e0>(
<ReceiptItem: 0x16a428b0>
)
(lldb) po [self.items indexOfObject:newItem]
<nil>
谢谢
-indexOfObject:
返回一个 NSUInteger
类型的整数,而不是一个对象引用。因此,你不应该使用 po
(打印对象)调试命令,而应该使用 p
。
它返回的是 0
,而不是 nil
,这意味着它在数组的第一个位置找到了这个对象。如果它没有找到这个对象,-indexOfObject:
将返回 NSNotFound
。
与 anObject 相等的第一个对象的最低索引。如果数组中没有任何对象与 anObject 相等,则返回 NSNotFound。
尝试做这个
(lldb) p (NSUInteger)[self.items indexOfObject:newItems];