-1

配列をフィルタリングし、キー値の都市の重複を削除します。最初のテーブルビューに都市名のみを重複なしで表示する必要があり、いつ選択したかを次のテーブルビューに特定の部門を表示する必要があります

インドの例 次のビューで 3 つの部門を表示する必要があります。提案してください

Array values :(
        {
        city = uk;
        department = "Sales support";

    },
        {

        city = us;
        department = "Sales support";

    },
        {
          city = italy;
          department = "Sales support";
           },
        {

        city = india;
        department = "x";
    },
        {

        city = india;
        department = "y";
            },
        {

        city = india;
        department = "z";
           },

   )
4

4 に答える 4

2
for (int i = 0; i< responseArray.count; i++)
{
    if (![cityArray containsObject:[[responseArray objectAtIndex:i] valueForKey:@"city"]])
    {
          [cityArray addObject:[[responseArray objectAtIndex:i] valueForKey:@"city"]];
    }
}

最初の tableView を cityArray でロードします

didSelectRowAtIndex:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"city = %@",[cityArray objectAtIndex:indexPath.row]];
NSArray *array = [responseArray filteredArrayUsingPredicate:predicate];
NSLog(@"Array -- %@",array);
于 2013-04-08T07:22:04.397 に答える
0

配列自体のディクショナリを作成する際に、都市が既に存在するかどうかを確認し、存在する場合は、部門1、部門2.のように別のキーを使用して部門を追加します.

Array values :(
        {
        city = uk;
        department = "Sales support";

    },
        {

        city = us;
        department = "Sales support";

    },
        {
          city = italy;
          department = "Sales support";
           },
        {

        city = india;
        department1 = "x";
        department2 = "y";
       department3 = "z";
    },

   )

このように作ってみたほうがいいです。これは簡単です。

于 2013-04-08T07:26:17.103 に答える
0

NSPredicateクエリで配列/辞書をフィルタリングするために使用できます。

例:

NSArray *someArray()
{
    NSString *const city = @"city";
    NSString *const department = @"department";
    NSString *const uk = @"uk";
    NSString *const us = @"us";
    NSString *const italy = @"italy";
    NSString *const india = @"india";

    return @[
     @{ city: uk, department: @"Sales support" },
     @{ city: us, department: @"Sales support" },
     @{ city: italy, department: @"Sales support" },
     @{ city: india, department: @"x" },
     @{ city: india, department: @"y" },
     @{ city: india, department: @"z" },
    ];
}

int main(int argc, const char * argv[])
{
    @autoreleasepool {

        NSArray *array = someArray();

        NSLog(@"%@", array);

        // You can make many fancy queries.
        NSPredicate *p = [NSPredicate predicateWithFormat:@"SELF.city like 'india'"];
        NSArray *b = [array filteredArrayUsingPredicate:p];

        NSLog(@"%@", b);

    }
    return 0;
}
于 2013-04-08T07:23:14.107 に答える