-1

私は辞書の配列を持っています

for(int i = 0; i < 5; i++) {
    NSMutableDictionary *_myDictionary = [NSMutableDictionary dictionary];

    [_myDictionary setObject:[NSString stringWithFormat:@"%d",i] forKey:@"id"];
    [_myDictionary setObject:label.text @"Name"];
    [_myDictionary setObject:label1.text @"Contact"];
    [_myDictionary setObject:label2.text @"Gender"];
}

[_myArray addObject:_myDictionary];

ここで、objectForKey:@"id" が 1 または 2 である配列から辞書を選択するか、SQL クエリ Select * from Table where id = 2 があるようなものを選びたいと思います。このプロセスを知っています。

int index = [_myArray count];

for(int i = 0; i < 5; i++)
{

NSMutableDictionary *_myDictionary = [NSMutableDictionary dictionaryWithDictionary:[_myArray objectAtIndex:i]];

if([[_myDictionary objectForKey:@"id"] isEqualToString:id])
{

index = i;

return;

}

}

if(index != [_myArray count])
    NSLog(@"index found - %i",index);

else
    NSLog(@"index not found");

どんな助けでも大歓迎です。前もって感謝します !!!

4

2 に答える 2

0

[NSNumber numberWithInteger: i]NSStringを使用しないでください。

この検索のコードは次のようになります。

NSString *valueToFind = [NSString stringWithFormat:@"%d", intValue]; // [NSNumber numberWithInteger: intValue] 
NSInteger index = [_myArray indexOfObjectPassingTest:^BOOL(NSDictionary *obj, NSUInteger idx, BOOL *stop) {
    return [valueToFind isEqualToString: [obj objectForKey: @"id"]];
}];
NSDitionary *found = [_myArray objectAtIndex: index];
于 2013-10-08T09:14:26.610 に答える