-1

NSArray にオブジェクトを動的に追加しようとしています。0 エラーが XCode に表示されます。

ただし、IOS シミュレーターはエラーを生成して終了します。

私のコードの静的バージョンは正常に動作します。

だから私はエラーがどこにあるのか分かりません。

静的バージョン:

  candyArray = [NSArray arrayWithObjects:
              [Candy candyOfCategory:@"chocolate" name:@"chocolate bar"],
              [Candy candyOfCategory:@"chocolate" name:@"chocolate chip"],
              [Candy candyOfCategory:@"chocolate" name:@"dark chocolate"],
              [Candy candyOfCategory:@"hard" name:@"lollipop"],
              [Candy candyOfCategory:@"hard" name:@"candy cane"],
              [Candy candyOfCategory:@"hard" name:@"jaw breaker"],
              [Candy candyOfCategory:@"other" name:@"caramel"],
              [Candy candyOfCategory:@"other" name:@"sour chew"],
              [Candy candyOfCategory:@"other" name:@"peanut butter cup"],
              [Candy candyOfCategory:@"other" name:@"gummi bear"], nil];

動的バージョン:

   // get JSON data from URL
   NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http:///?view=json"]];
NSURLResponse *resp = nil;
NSError *error = nil;
NSData *response = [NSURLConnection sendSynchronousRequest: theRequest returningResponse: &resp error: &error];
NSString *jsonString = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; //your json string from URL request

// PARSINF JSON VALUE
NSDictionary *jsonDictionary = [jsonString JSONValue];
NSDictionary *players = [jsonDictionary objectForKey:@"user"];

// Creating mutablearray who will receive the inputs of json:
NSMutableArray *nameInsert = [[NSMutableArray alloc] init];

for (NSDictionary *player in players)
{
    NSString *item = [player objectForKey:@"name"];

    [nameInsert addObject: [Candy candyOfCategory:@"chocolate" name:item" ]];
}

candyArray = nameInsert;

ループに何も含まれていない場合、IOS シミュレーターは機能します。

もちろん、アプリケーションには何もありません。

4

1 に答える 1

1

playersあなたのコードから、辞書の配列になることを期待しているようです。

(for NSDictionary *player in players)

ただし、配列ではなくplayersとして初期化します。NSDictionary代わりに配列として初期化する必要があります。

NSDictionaryNSArray *players = [jsonDictionary objectForKey:@"user"];

于 2013-08-23T11:09:33.340 に答える