-1

重複の可能性:
エンティティの配列を Iterar し、一致する「他のキー」の値に基づいてキーの値を取得する

salarystatus フィールドが null でない場合、辞書内のすべてのフィールドの値を取得する方法についてヒントやヒントを教えてください。salary辞書内のオブジェクトからフィールドを取得したいだけですstatus != null。私の辞書は動的であることに注意してください。つまり、4 つ以上のエントリがある可能性があります。ヘルプやヒントは大歓迎です。前もって感謝します。

myArray=(
        {
        Name = "john1";
        Address = "san diego";
        Status = "active";
        salary = "100;

    },
        {
        Name = "steve ";
        Address = "birmingham";
        Status = "<null>";
        salary = "100;
    },
        {
         Name = "allan";
        Address = "san diego";
        Status = "active";
        salary = "100;
    },

     {
         Name = "peter";
        Address = "san diego";
        Status = "<null>";
        salary = "100;
    },
)
4

4 に答える 4

0

私はテストしていないので、これを変更する必要があるかもしれません

for (int i=0;i< [myArray count];i++)
{
    if ([[[myArray objectAtIndex: i] objectForKey: @"Status"] isEqualToString: @"active"]) {

       NSLog(@"Salary is %@",[myArray objectAtIndex: i] objectForKey: @"salary"] )
    } else {
        NSLog(@"Status is not active");
    }
}

または、このようなものを使用できます

  for (NSDictionary *salary in myArray)
    {
        if([message valueForKey:@"Status"] isEqualToString: @"active")
           NSLog(@"Salary is %@",[message valueForKey:@"salary"]);      

    }

給与の仕分け

キーを並べ替えてから、それらを反復処理して NSMutableArray を作成できます。 ここから答える

NSArray *sortedKeys = [[myArray allKeys] sortedArrayUsingSelector: @selector(compare:)];
NSMutableArray *sortedValues = [NSMutableArray array];
for (NSString *key in sortedKeys)
    [sortedValues addObject: [myArray objectForKey: key]];
于 2012-12-20T18:27:17.373 に答える
0

これを試して:

  NSDictionary *salaries = nil;
  NSArray *myArray .... ;


for (NSString * salary in salaries) {

    if ([myArray containsObject:@"salary"]) {

        if ([salaries objectForKey:@"salary"] != NULL) {

            NSLog (@"do something with salary: %@", salary);
        }
    }

}
于 2012-12-20T18:27:37.247 に答える
0

高速列挙を試してください...

NSMutableArray* retreivedSalaries;

for (NSDictionary* dict in myArray) {
    if (![[dict objectForKey:@"Status"] isEqualToString:@"<null>"])
        [retreivedSalaries addObject:[dict objectForKey:@"salary"]];
 };
于 2012-12-20T18:25:52.353 に答える
0

これは iOS だと思います。myArray は NSArray であり、それぞれの動的な個人情報は NSDictionary です。これがポイントである場合は、次のことができます。

for (NSDictionary *info in myArray) {

    if ([info objectForKey:@"Status"] != nil && ![[info objectForKey:@"Status"] isEqual:@"<null>") {
        // Store salary whatever you need and in the formar you need
        NSString *salary = [info objectForKey:@"salary"]; 
    }

}

私はコンパイラなしでコードを書いたので、おそらくいくつかのコンパイラエラーがあります(申し訳ありません)。あなたの質問をよく理解できれば、Status が null でない場合に給与を受け取ることができます。

ホープ・ヘルプズ!

于 2012-12-20T18:49:56.050 に答える