0

我想知道的是如何使用附加的 ID 号显示客户的名称(它是客户对象的对象实例)。这是我迄今为止尝试过的,但它不起作用:

int number = [nunmber intValue];
Customer *customer = [list objectAtIndex:(memberNumber == number)];
NSLog(@"member:%@",customer.name);
NSLog(@"number:%i",number); 

所有这一切都是它打印表格中第一个人的名字,
感谢您的帮助。
我正在为 osx 使用 xcode 4 编程

4

2 回答 2

0

您必须对列表进行迭代(快速枚举):

for (Customer *c in list) {
  if ([c memberNumber]==nunmber) {
    NSLog(@"member %@ with number %@ found",[c name],[c memberNumber]);
  }  
}

前提是nunmbermemberNumber是同一类型。您的方法...:(memberNumber==number)将为您提供索引为 0 的第一个元素(如果 memberNumber!=number)或第二个元素(如果 memberNumber==number),因为您有效地执行了测试并因此得到一个带有 0 或 1 的布尔值。

于 2012-04-13T20:30:14.380 回答
0

尝试这个:

Customer *customer = [list objectAtIndex:number];

编辑

您可以使用 的实例NSPredicate根据成员编号过滤数组,如下所示:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"memberNumber == %@", [NSNumber numberWithInt:memberNumber]];
NSArray *matchingMembers = [members filteredArrayUsingPredicate:predicate];

Customer *customer = [matchingMembers lastObject];
NSLog(@"%@", customer.name);
于 2012-04-13T20:04:58.467 回答