0

私はios開発が初めてです。ディクショナリ (変数と項目ディクショナリの配列を含む) の形式で Web サービスから特定のデータを取得しています。userdefaults にデータを正常に保存できました。

for ループを使用して、各アイテム ディクショナリから特定のキーの img_urls という名前の新しい配列を作成します。

私の問題は、[ img_urls objectAtIndex:0] を使用してこの配列にアクセスすると、0番目のインデックスでのみ値を取得するのではなく、完全な配列を出力として取得することです。[img_urls objectAtIndex:1] を指定すると、NSRangeException が発生します。

これが私のコードです:

NSDictionary *restData=[[NSUserDefaults standardUserDefaults]valueForKey:@"Rest data"];
totalResult=[[restData valueForKey:@"totalResult"]intValue];
restaurants=[[NSArray alloc] initWithObjects:[restData valueForKey:@"restaurants"], nil ];
for(NSDictionary *item in restaurants)
{


    [img_urls addObject:[item valueForKey:@"profileImage"]];
}
  NSLog(@"REST NAMES%@",[img_urls objectAtIndex:0]);

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

4

3 に答える 3

0

以下のようにメソッドを変更します。

[[NSArray alloc] initWithObjects:[restData valueForKey:@"restaurants"], nil ]

//以下修正

[[NSArray alloc] initWithArray:[restData valueForKey:@"restaurants"]]

于 2013-10-18T12:27:54.013 に答える
0

初期化中に array([restData valueForKey:@"restaurants"]) をレストラン配列のオブジェクトとして指定しているため、使用すると配列全体が取得されますobjectAtIndex:0

NSDictionary *restData=[[NSUserDefaults standardUserDefaults]valueForKey:@"残りのデータ"];
totalResult=[[restData valueForKey:@"totalResult"]intValue];
restaurant=[[NSArray alloc] initWithArray:[restData valueForKey:@"restaurants"]];
for(NSDictionary *レストランのアイテム)
{


    [img_urls addObject:[item valueForKey:@"profileImage"]];
}
  NSLog(@"REST NAMES%@",[img_urls objectAtIndex:0]);
于 2013-10-18T13:02:57.380 に答える