0

我正在尝试使用字典键对象从数组中获取对象索引...但无法获取它。

这是详细信息..

我有数组有字典....

 (
   {
        CATEGORYID = 865;
        CATEGORYNAME = "sample1";
        CATEGORYTHUMBIMAGEURL = "1.jpg";
    },
            {
        CATEGORYID = 140;
        CATEGORYNAME = "sample2";
        CATEGORYTHUMBIMAGEURL = "2.jpg";
    },
            {
        CATEGORYID = 1194;
        CATEGORYNAME = "sample3";
        CATEGORYTHUMBIMAGEURL = "3.jpg";
    }
); 

在这里,我有 CATEGORYID.... 使用类别 ID 我需要在数组中获取对象索引...

我实现的代码是......

 int inx;
    for (int i=0; i<[mutArrData count]; i++) {
    NSString *str=(NSString*)[sender tag];
    //NSLog(@"MY Str %@",str);
    id myOjbect =(id)[sender tag];
    //NSLog(@"My OBJECT %d",[myOjbect intValue]);

    if ([[[mutArrData objectAtIndex:i] allKeys] containsObject:[NSString stringWithFormat:@"%d",[sender tag]]]) {
        inx=i;
        NSLog(@"Breaking here %d",inx);

    }

}

但无法获得它,任何人都可以帮助......

4

1 回答 1

1

一个问题是标签是一个整数,上面你把它当作一个 NSString、一个对象和一个整数。

假设您将数组列为一些示例数据,但您的主要问题是 allKeys 返回一个键名数组,而不是您要比较的值。

您要做的是提取 categoryid 键的 int 值:

// Return matching index, or -1 for not found
-(int)indexInArray:(NSArray)array forCategoryId:(int)categoryId {
  for (int i = 0; i < [array count]; i++) {
    int currentCategoryId = [[[array objectAtIndex:i] valueForKey:@"CATEGORYID"] integerValue];
    if (currentCategoryId == categoryId) {
      return i;
    }
  }
  return -1;
}
于 2012-07-24T13:27:50.917 回答