Моя цель - создать базу данных sqlite и заполнить ее данными (возможно, 1000+ строк) и использовать эту базу данных для предварительной загрузки основных данных и заполнения табличного представления.
Пока у меня есть табличное представление, работающее с Базовыми данными, Модели управляемых объектов.Я могу добавлять элементы и удалять элементы - в основном у меня есть шаблон Master-Detail, работающий с моей собственной моделью.
Вопрос: Как мне создать базу данных sqlite в правильном формате для использования с Core Data?
Я успешно сделал это, используя предоставленные базы данных SQL и учебные пособия из книг.Что я заметил, так это то, что таблица 'fugitive' (например) в моем уроке написана как "ZFUGITIVE" в предоставленной базе данных sqlite.У всех его столбцов есть «Z», добавленный в начало («ZFUGITIVEID», «ZNAME» ...), и существует три дополнительных столбца («Z_PK», «Z_ENT», «Z_OPT»), которые не включены в управляемыйобъектная модель (.xcdatamodeld).Кроме 'Z' всех имен заглавных букв и дополнительных столбцов я также вижу (в этом .sqlite db, который идет с учебником), что есть две дополнительные таблицы "Z_PRIMARYKEY" и "Z_METADATA".
Я знаком сКоманды терминала sqlite и могут создавать базу данных, но не имеют правильного форматирования, лишних строк или дополнительных таблиц с метаданными.В качестве эксперимента я использовал приведенную выше таблицу базы данных Fugitive sqlite и добавил в нее еще одну таблицу.Сначала я назвал это таблицей 'вещь' со столбцами 'thingID' и 'title'.Я создал для него управляемый объект и подключил его к своему табличному представлению.Я не мог на всю жизнь получить данные для предварительной загрузки в базовые данные / представление моей таблицы.Я не получил сообщений об ошибках, он просто не загружал данные заранее (он позволял мне добавлять и удалять новые элементы, как шаблон Master-Detail).
Поэтому я переименовал таблицу 'thing' в 'ZTHING'со столбцами ('Z_PK', 'Z_ENT', 'Z_OPT', 'ZTHINGID' и 'ZTITLE'), и теперь я получаю следующее сообщение об ошибке. Я знаю, что это говорит мне о том, что я создал свою таблицу неправильно, однако я не могу найти документацию о том, как правильно ее создать.Пожалуйста, помогите.
Вот большая ошибка гудка, которая в основном утверждает, что номер версии, записанный в таблице Z_METADATA (столбец Z_UUID), неверен: [Или я так думаю]
Unresolved error Error Domain=NSCocoaErrorDomain Code=134100 "The operation couldn’t be completed. (Cocoa error 134100.)" UserInfo=0x5b489c0 {metadata=<CFBasicHash 0x5b4e960 [0x2651380]>{type = immutable dict, count = 7,
entries =>
2 : <CFString 0x5b4ea40 [0x2651380]>{contents = "NSStoreModelVersionIdentifiers"} = <CFArray 0x5b4eb10 [0x2651380]>{type = immutable, count = 0, values = ()}
4 : <CFString 0x5b4ea90 [0x2651380]>{contents = "NSPersistenceFrameworkVersion"} = <CFNumber 0x5b4e530 [0x2651380]>{value = +248, type = kCFNumberSInt64Type}
6 : <CFString 0x5b4eac0 [0x2651380]>{contents = "NSStoreModelVersionHashes"} = <CFBasicHash 0x5b4eba0 [0x2651380]>{type = immutable dict, count = 1,
entries =>
1 : <CFString 0x5b4eb30 [0x2651380]>{contents = "Fugitive"} = <CFData 0x5b4eb50 [0x2651380]>{length = 32, capacity = 32, bytes = 0xe33370b6e7ca3101f91d25951e8bfe01 ... 9e50237bb313d390}
}
7 : <CFString 0x1ee464 [0x2651380]>{contents = "NSStoreUUID"} = <CFString 0x5b4e850 [0x2651380]>{contents = "E711F65F-3C5A-4889-872B-6541E4B2863A"}
8 : <CFString 0x1ee324 [0x2651380]>{contents = "NSStoreType"} = <CFString 0x1ee2e4 [0x2651380]>{contents = "SQLite"}
9 : <CFString 0x5b4ea10 [0x2651380]>{contents = "NSStoreModelVersionHashesVersion"} = <CFNumber 0x5d0b520 [0x2651380]>{value = +3, type = kCFNumberSInt32Type}
10 : <CFString 0x5b4eaf0 [0x2651380]>{contents = "_NSAutoVacuumLevel"} = <CFString 0x5b4ebf0 [0x2651380]>{contents = "2"}
}
, reason=The model used to open the store is incompatible with the one used to create the store}, {
metadata = {
NSPersistenceFrameworkVersion = 248;
NSStoreModelVersionHashes = {
Fugitive = <e33370b6 e7ca3101 f91d2595 1e8bfe01 3e7fb4de 6ef2a31d 9e50237b b313d390>;
};
NSStoreModelVersionHashesVersion = 3;
NSStoreModelVersionIdentifiers = (
);
NSStoreType = SQLite;
NSStoreUUID = "E711F65F-3C5A-4889-872B-6541E4B2863A";
"_NSAutoVacuumLevel" = 2;
};
reason = "The model used to open the store is incompatible with the one used to create the store";
}
Большое спасибо за всю помощь, которую вы можете оказать мне