Загадочный вывод консоли SQLite в Objective-C - PullRequest
0 голосов
/ 28 мая 2011

При запуске моей программы для запроса библиотеки iPod моего iPhone, я получаю следующий вывод в консоли:

CPSqliteStatementPerform: попытка записать базу данных только для чтения для UPDATE ddd.ext_container SET orig_date_modified = (SELECT date_modifiedОТ контейнера 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?

1 Ответ

0 голосов
/ 29 мая 2011

Видимо, это ошибка в iOS 4.3, и она устранена в этом devforum в Apple:

https://devforums.apple.com/message/428584#428584

...