プログラムを実行してiPhoneのiPodライブラリを照会すると、コンソールに次の出力が表示されます。
CPSqliteStatementPerform:UPDATEddd.ext_containerの読み取り専用データベースを書き込もうとしますSETorig_date_modified =(SELECT date_modified FROM container WHERE pid = container_pid)WHERE orig_date_modified = 0
コンソールに出力するものをすべて無効にしているので、NSLogでエラーが発生しているわけではありません。ここで何が起こっているのか、どうすれば修正できますか。私が呼び出しているクラス全体のソースコードと、作業を行うクラスを含めます(すべてを投稿して申し訳ありません:
+(NSMutableDictionary *) makeQuery {
MPMediaQuery *query = [[MPMediaQuery alloc] init]; //query iPod library
NSString *facebookIDKey = @"Facebook ID";
NSString *genericFacebookID = @"1234567890";
NSMutableDictionary *organizedSongData = [NSMutableDictionary dictionaryWithObject:genericFacebookID forKey:facebookIDKey];
NSArray *allSongs = [query collections];
//only add those songs which have not
//been played since last login
for (MPMediaItem *recent in allSongs) {
NSDate *lastPlayed = [recent valueForProperty:MPMediaItemPropertyLastPlayedDate];
int songCounter = 1;
BOOL uploadInfo = [[PlayedSinceLastLogin alloc] initWithLastPlayedDateOfSong:lastPlayed];
if (uploadInfo == YES) {
//adds songs into
[organizedSongData addEntriesFromDictionary: [MakeDicForSongInfo initWithMPMediaItem:recent andSongNumber:songCounter]];
songCounter++;
}
}
return organizedSongData;
}
MakeDicForSongInfoで行われた作業の実際の成果は次のとおりです。
+(NSDictionary *) initWithMPMediaItem:(MPMediaItem *) song andSongNumber: (int)songCount{
//Create & initialize NSStrings for keys
//Create NSArray to hold keys
NSString *songKey = [NSString stringWithFormat: @"%i Song Title", songCount];
NSString *albumKey = [NSString stringWithFormat: @"%i Album", songCount];
NSString *artistKey = [NSString stringWithFormat: @"%i Artist", songCount];
NSString *artistIDKey = [NSString stringWithFormat: @"%i Artist Persistent ID", songCount];
NSString *lastPlayedKey = [NSString stringWithFormat: @"%i Late Played Date", songCount];
NSString *genreKey = [NSString stringWithFormat: @"%i Genre", songCount];
NSString *ratingKey = [NSString stringWithFormat: @"%i User Rating", songCount];
NSString *playCountKey = [NSString stringWithFormat: @"%i Play Count", songCount];
NSArray *propertyKeys = [[NSArray alloc] initWithObjects:songKey, albumKey, artistKey, artistIDKey,
lastPlayedKey, genreKey, ratingKey, playCountKey, nil];
//Create & initialize NSStrings to hold song property information
//Create NSArray to hold the values
NSString *songTitle = [song valueForProperty:MPMediaItemPropertyTitle];
NSString *albumName = [song valueForProperty:MPMediaItemPropertyAlbumTitle];
NSString *artistName = [song valueForProperty:MPMediaItemPropertyArtist];
NSString *artistID = [song valueForProperty:MPMediaItemPropertyArtistPersistentID];
NSString *lastPlayed = [song valueForProperty:MPMediaItemPropertyLastPlayedDate];
NSString *genre = [song valueForProperty:MPMediaItemPropertyGenre];
NSString *userRating = [song valueForProperty:MPMediaItemPropertyRating];
NSString *playCount = [song valueForProperty:MPMediaItemPropertyPlayCount];
NSArray *propertyValues = [[NSArray alloc] initWithObjects:songTitle, albumName, artistName, artistID,
lastPlayed, genre, userRating, playCount, nil];
//Create NSDictionary to store information, initializing it with
//above data, then returning the resulting dictionary
NSDictionary *songInfo = [[NSDictionary alloc] initWithObjects:propertyValues forKeys:propertyKeys];
return songInfo;
}
それは、iPhoneを驚かせるすべてのメディア情報にアクセスする上で何かでしょうか?