NSArray indexOfObject返回nil

时间:2015-05-31 09:40:10

标签: ios objective-c nsarray

任何想法为什么我不能得到我确定在数组中存在的对象的索引?相反,我没有......

(lldb) po newItem
<ReceiptItem: 0x16a428b0>

(lldb) po self.items
<__NSArrayM 0x169bf0e0>(
<ReceiptItem: 0x16a428b0>
)

(lldb) po [self.items indexOfObject:newItem]
<nil>

由于

2 个答案:

答案 0 :(得分:15)

-indexOfObject:返回类型为NSUInteger的整数,而不是对象引用。因此,您不应使用po(打印对象)调试器命令,而应使用p

它返回0,而不是nil,这意味着它在数组的第一个位置找到了对象。如果找不到该对象,-indexOfObject:将返回NSNotFound

  

最低索引,其对应的数组值等于anObject。如果数组中的任何对象都不等于anObject,则返回NSNotFound。

答案 1 :(得分:1)

尝试这样做

(lldb) p (NSUInteger)[self.items indexOfObject:newItems];