Почему я получаю эту ошибку CPSqliteStatementPerform в консоли xcode

#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.