2011-07-29 12 views
0

この例ではforループを使用しない方法について教えてください。可能であれば1つの操作を実行したい:NSDictionaryを1回の操作で解析する(ループを削除する)。

NSArray *statuses = [parser objectWithString:json_string error:nil]; 

for (NSDictionary *status in statuses) {     
    test = [status objectForKey:@"USER_ID"]; 
} 

ありがとう。

+0

1回の操作で何を達成したいですか?あなたは詳しく説明できますか? –

+0

私は使用したくない(ステータスのNSDictionary *ステータス) –

+0

私は1つしかUSER_IDを持っていません –

答えて

1
NSArray *statuses = [parser objectWithString:json_string error:nil]; 


if ([statuses count]>0) { 

     test=[[statuses objectAtIndex:0] objectForKey:@"USER_ID"];  

} 
+0

thx bro it work)))))) –

+0

歓迎buddy.forインスタントヘルプhttp://chat.stackoverflow.com/rooms/682/conversation/do-u-want-instant-help-for-ur-question- or-ru-new-bee-to-iphone-ipad-develop –

+0

パーサーが空の配列を返した場合、例外がスローされます。 objectAtIndexではなく[statuses lastObject]を使用する方が安全です。 – wbyoung

1

NSArrayに1つの要素しかないことがわかっている場合、またはNSDictionaryが常に最初の位置、または他の固定位置にある場合は、[statuses objectAtIndex:0](または任意のインデックス)を使用してstatus要素を取得します。

+0

私はステータスobjectAtIndexを使用する場合:0]結果はインスタンスをスローした後に終了します'NSException' –

+0

これは、ステータスが空であれば発生するはずです(元のコードではテストが終了しません)。可能ならば、シーケンス全体でif(statuses.count> 0)条件を投げる必要があります。 –

関連する問題