バックエンド サービスとしてParseを使用していますが、この例では、バックエンド スキーマを模倣する2 つのサンプル配列 (songs
および) を作成しました。アプリのテーブルに入力する曲データで構成されています。現在のユーザーの曲の評価で構成されます。ratings
songs
ratings
最終的には、ループして、それぞれの辞書に埋め込む必要songs
がありますratings
。以下にループコードを含めました。これをより効率的に行うことはできますか? オブジェクトが多すぎると時間がかかりすぎるのではないかと心配しています。userRating
songs
ratings
NSMutableArray *songs = [@[ @{
@"objectId" : @"111",
@"title" : @"Song Title" },
@{
@"objectId" : @"222",
@"title" : @"Song Title"
} ] mutableCopy];
NSMutableArray *ratings = [@[ @{
@"objectId" : @"999",
@"parentObjectId" : @"111",
@"userRating" : @4
} ] mutableCopy];
for (NSInteger a = 0; a < songs.count; a++) {
NSMutableDictionary *songInfo = [songs objectAtIndex:a];
NSString *songObjectId = [songInfo objectForKey:@"objectId"];
NSNumber *userRating = @0;
for (NSInteger i = 0; i < ratings.count; i++) {
NSDictionary *userRatingInfo = [ratings objectAtIndex:i];
NSString *parentObjectId = [userRatingInfo objectForKey:@"parentObjectId"];
if ([parentObjectId isEqualToString:songObjectId]) {
userRating = [userRatingInfo objectForKey:@"userRating"];
}
}
[songInfo setObject:userRating forKey:@"userRating"];
}