-1

私は次のコードを持っています:

NSString *movies = [[NSString alloc] initWithData:webData7 encoding:NSUTF8StringEncoding];
NSLog(@"movies: %@", movies);
array_webdata = [parsedata objectWithString:movies error:nil];
userMovies = [array_webdata valueForKey:@"movies"];
NSLog(@"userMovies: %@", userMovies);
NSMutableArray *arrayCodes = [userMovies valueForKey:@"rtid"];
NSLog(@"arrayCodes: %@", arrayCodes);

最初の行で、私は次のように映画に保存します。

映画:

{"movies":[["rtid"、 "770672122"]、["rtid"、 "771268706"]、["rtid"、 "771240265"]、["rtid"、 "9377"]]}

with:userMovies = [array_webdata valueForKey:@"movies"]; userMoviesに保存します:

userMovies: (
        rtid,
        770672122
    ),
        (
        rtid,
        771268706
    ),
        (
        rtid,
        771240265
    ),
        (
        rtid,
        9377
    )

ここから、数値を抽出して、次のような別の配列を作成します。

コード:(770672122、771268706、771240265、9377)

しかし、次の行で、実行がクラッシュします:

NSMutableArray *arrayCodes = [userMovies valueForKey:@"rtid"];

エラーはEXC_BAD_ACCESSです。デバッグ領域にエラーが表示されない

何が悪いのか知っていますか?ありがとう!

質問をわかりやすくするために編集しました

4

2 に答える 2

1

可変配列に数値(またはint、または何らかの型)を割り当てているため、使用しているコードは明らかに機能しません。あなたはそれをすることはできません。それらは配列に含まれるため、配列に追加する必要があります。これらの番号は配列ではありません...

JSONからどのように取得していますか?あなたの配列はおそらくNSDictionaryの配列なので、次のようなことをしたいと思うでしょう。

for (NSDictionary *aDictionary in userMovies)
{
    [arrayCodes addObject: [aDictionary valueForKey:@"rtid"]];
}

あなたはあなたの配列に何があるかを見つけることから始める必要があります。行う:

NSLog(@"My array contains %@'s", [[userMovies valueForKey:@"rtid"] class]);

そこから、NSDictionaryを取得した場合は上記のコードを使用し、配列を取得した場合は、次のように配列をループする必要があります。

for (NSArray *anArray in userMovies)
{
    [arrayCodes addObject: [anArray objectAtIndex:1]];
}
于 2012-08-21T13:26:31.757 に答える
0

解決しました!

最後の2行のコードを削除しました。

NSMutableArray *arrayCodes = [userMovies valueForKey:@"rtid"];
NSLog(@"arrayCodes: %@", arrayCodes);

そして、以下を追加しました

NSMutableArray *moviesCodes = [[NSMutableArray alloc] init];
for (int counter = 0; counter<[userMovies count]; counter++){
   [moviesCodes addObject:[[userMovies objectAtIndex:counter] objectAtIndex:1]];
}

これで、moviesCodesという配列にすべてのIDを保存しました。問題は、userMoviesが配列の配列であるということでした

于 2012-08-22T08:09:41.853 に答える