1

nsmutabledictionary に値を設定すると、下の画像にエラーが表示されます....

ここに画像の説明を入力

ここに nsmutabledictionary の setvalue の私のコード

NSMutableArray *countArray=[[NSMutableArray alloc] init];
for (int i=0;i<artistName.count;i++)
{
    int count=0;
    NSMutableDictionary *dir1=[artistName objectAtIndex:i];
    NSString *artist1=[dir1 objectForKey:@"SONG_ARTIST"];

    for (int j=0;j<CurrentPlayingSong.count;j++)
    {
        NSDictionary *dir2=[CurrentPlayingSong objectAtIndex:j];
        NSString *artist2=[dir2 objectForKey:@"SONG_ARTIST"];

        if ([artist2 isEqualToString:artist1])
        {
            count++;
        }
    }

    NSString *Size=[[NSString alloc] initWithFormat:@"%d",count];
    [dir1 setObject:Size forKey:@"SIZE"];

    [countArray addObject:dir1];
}
return countArray;
4

1 に答える 1

10

これNSMutableDictionary *dir1=[artistName objectAtIndex:i];は、dir1 を同じタイプに変換する NSDictionary オブジェクトを返します。

最善の方法は、次のようなことです。

NSMutableDictionary *dir1=[NSMutableDictionary dictionaryWithDictionary:[artistName objectAtIndex:i]];

また

NSMutableDictionary *dir1 = [artistName[i] mutableCopy];

これにより、dir1 は常に NSMutableDictionary になります。

お役に立てれば

于 2013-06-12T04:57:29.843 に答える