#objective-c #ios #sqlite
#objective-c #iOS #sqlite
Вопрос:
Я получаю следующие ошибки в консоли xcode, но я не знаю, на какую базу данных только для чтения она жалуется:
CPSqliteStatementPerform: attempt to write a readonly database for UPDATE ddd.ext_container SET orig_date_modified = (SELECT date_modified FROM container WHERE pid=container_pid) WHERE orig_date_modified=0
CPSqliteStatementReset: attempt to write a readonly database for UPDATE ddd.ext_container SET orig_date_modified = (SELECT date_modified FROM container WHERE pid=container_pid) WHERE orig_date_modified=0
Следующий код выполняется непосредственно перед ошибкой:
MPMediaQuery *myPlaylistsQuery = [MPMediaQuery playlistsQuery];
NSArray *array = [myPlaylistsQuery collections];
playlists = [[NSMutableArray alloc] init];
[playlists addObject:@"new playlist"];
NSLog(@"%@", [playlists objectAtIndex:0]);
int numPlaylists = 1;
for (MPMediaPlaylist *arrayItem in array) {
NSLog(@"Got here");
NSLog выводит «новый список воспроизведения»
Затем ошибки CPSqliteStatementPerform: и CPSqliteStatementReset: выводятся сразу после инициализации цикла for.
Затем NSLog выводит «Добрался сюда».
Какую базу данных, доступную только для чтения, я пишу и как мне это исправить?
Комментарии:
1. Джефф, ты когда-нибудь выяснял, что вызвало это. У меня похожая проблема, и я не смог найти решение. Счет
2. Нет, я так и не понял этого. Все еще надеюсь, что у кого-то есть решение.
3. Я просто подумал, что, возможно, это выдает ошибку, когда вы помещаете MPMediaItems в массив, потому что вы пытаетесь их скопировать? Мысли?
Ответ №1:
Устройство, похоже, думает, что вы пытаетесь выполнить запись в эти местоположения. Я делаю аналогичный проект и открыл консоль моего iPhone в Organizer, чтобы посмотреть, что происходит. Вот строки, которые отображаются, когда я пытаюсь получить свойства MPMediaItems:
May 27 22:11:04 unknown sandboxd[2512] <Notice>: QueryTesting(2510) deny file-write-mode /private/var/mobile/Media/iTunes_Control/iTunes/iTunes Library.itlp/Library.itdb
May 27 22:11:04 unknown sandboxd[2512] <Notice>: QueryTesting(2510) deny file-write-data /private/var/mobile/Media/iTunes_Control/iTunes/iTunes Library.itlp/Library.itdb
May 27 22:11:04 unknown sandboxd[2512] <Notice>: QueryTesting(2510) deny file-write-data /private/var/mobile/Media/iTunes_Control/iTunes/iTunes Library.itlp/Dynamic.itdb
May 27 22:11:04 unknown sandboxd[2512] <Notice>: QueryTesting(2510) deny file-write-data /private/var/mobile/Media/iTunes_Control/iTunes/iTunes Library.itlp/Extras.itdb
May 27 22:11:04 unknown sandboxd[2512] <Notice>: QueryTesting(2510) deny file-write-data /private/var/mobile/Media/iTunes_Control/iTunes/iTunes Library.itlp/DBTemp/ddd.itdbm
Даже если я просто проверяю, каковы значения, он думает, что я пытаюсь туда записать. Возможная ошибка?
РЕДАКТИРОВАТЬ: Это ошибка, как обсуждалось здесь —>>https://devforums.apple.com/message/428584#428584
Ответ №2:
Это начало происходить с моим приложением, когда я начал использовать файл Settings.bundle root.plist. Когда я удаляю это, оно исчезает.
Думаю, что что-то не так с NSUserDefaults.standardUserDefaults…….
Сейчас я просто проигнорирую это сообщение и отправлю обновление моего приложения в Apple.
Комментарии:
1. Хм. Это интересно. Но, к сожалению, мне вроде как нужны настройки.bundle.