2012-07-24 77 views
0

我想從使用字典關鍵對象的數組中獲取對象索引......但無法獲取它。在iphone中使用字典對象鍵在NSMutableArray中獲取對象索引sdk

下面是詳細..

我有字典的數組....

(
    { 
     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); 

    } 

} 

但無法得到它,任何一個可以幫助...

回答

1

一方面的問題是,標記是一個整數,並在上面你把它作爲一個NSString,一個對象和一個整數。

假設您將陣列列爲一些示例數據,但您的主要問題是allKeys正在向您返回鍵名稱數組而不是您想要比較的值。

你想要做的是爲類別ID鑰匙拔出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; 
}