Я новичок в Xcode и пытаюсь учиться сам, моя проблема может быть наивной, но мне действительно нужна помощь.
Я учусь создавать электронную книгу, изучая готовый проект с исходным кодом.
Отлично работает с записью закладок через sqlite3.
Но когда я создаю новый проект с другим именем и путем, правильно строю часть libsqlite3.dylib и копирую почти весь код, вызывается оператор else, который вылетает при попытке открыть окно закладок.
Вот несколько вопросов, которые я сам себе задал,
- я что-то пропустил или не смог изменить имена или пути? ответил: нет.
- , так как один работает отлично, а другой с почти таким же кодом вылетает, какая ошибка наиболее вероятна? ответил: очень мало отличий от этих двух проектов, и т.д. путь, имя, содержимое в файле.
Затем я изменил имя файла базы данных хорошего проекта, и он стал сбой.
Я не мог поверить, потому что я слышал, что sqlite3_open([dbPath UTF8String], &dataBase);
создаст файл, если он не существует, почему он просто не создаст новый файл с новым именем после того, как ему будет сказано получить доступ к новому файлу?
Второй тест, который я провел, - это изменение пути к файлу db нового проекта вручную на путь к файлу db исходного. как путь больше не [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
, но это @ "/ Users / ~ (путь к оригиналу) ~ / Documents / archive" и, боже, это работает.
Но, конечно, я не могу оставить это так, потому что этот путь ничего не значит на реальном iPhone, и он все еще зависит от файла базы данных исходного.
По крайней мере, я знаю, что путь действительно имеет значение, и мне кажется, что мне не хватает чего-то вроде файла db в моем новом проекте.
Но дело в том, что я не нашел ни одного файла БД в пути исходного проекта, он, кажется, существует и важен, но не отображается в поиске.
Я даже попытался программно скопировать файл в мой новый путь, например, вызвав [self createEditableCopyOfDatabaseIfNeeded]; с новым и старым путем.
Это все, что я пробовал до сих пор.
Странно то, что он каким-то образом записывает шрифт и цвет после неизвестной попытки, но все равно вылетает при переходе в окно закладок.
Это все, что я пытался за три дня. Это может помочь вам ответить на вопрос или хотя бы узнать, как я расстроился после тысячи попыток.
Жду помощи и большое спасибо!
const char * createSQL = "СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ ЗАКЛАДКА (pos REAL PRIMARY KEY, \ fontsize REAL, \ bookpath TEXT)";
недавно добавлено: поскольку программа автоматически выдает сбой, когда база данных не подготовлена, ошибка meg, как кто-то сказал, бесполезна. Все, что мне нужно, это, возможно, сделать sqlite3_prepare(dataBase, [querySQL UTF8String], -1, &statement, nil) == SQLITE_OK
не ложным ..