【问题标题】:Find indexOfObject from NSArray从 NSArray 中查找 indexOfObject
【发布时间】:2012-01-17 08:35:19
【问题描述】:

我有一个充满自定义对象的 NSArray。 每个对象都有几个变量:pk、数量、日期等。

我想获取 pk 变量中编号最大的对象。 我可以这样做:

 NSUInteger maximumpk = [[bets valueForKeyPath:@"@max.pk"] intValue];

这给了我最高 pk 的实际值。现在我需要获取该对象的索引。我已经看到当数组只有 1 个数据变量时使用 indexOfObject,但是在这种情况下如何使用它?

谢谢

【问题讨论】:

  • 嗨 Darren,您可能需要在自定义类中覆盖 - (BOOL) isEqual(NSObject*)。当您在 NSArray 中调用 indexOfObject 时,它会调用 isEqualMethod。因此您可以检查 self.pk 与传递的对象 pk 值的相等性。

标签: objective-c ios cocoa-touch nsarray


【解决方案1】:

使用-indexOfObjectPassingTest:,例如:

NSUInteger idx = [bets indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop) {
    return [obj pk] == maximumpk;
}];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    相关资源
    最近更新 更多