Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > iOS > Небольшие вопросы по основам использования Sqlite


Автор: duceum 1.4.2012, 15:09
Здравствуйте! Появилась идея сделать небольшую игру обучающую игру для младшего брата. И в процессе разработки возникло несколько вопросов:
1) В приложении я решил использовать sqlite базу данных, как работать с ней я разобрался, но не понятно где она будет храниться - в папке документы пользователя в файловой системе, или отдельно, в самой папке приложения? А также как будет происходить загрузка файла базы данных? Можно будет предварительно заполнить её самому, перед загрузкой приложения в Appstore, чтобы приложение устанавливалось уже с заполненной базой?

2) Можно сделать чтобы в приложении использовалось 4 storyboards, и каждый из них управлялся своим контроллером? А то не хочется делать один storyboard и один огромный контроллер.

Заранее спасибо за помощь. 

Автор: Bitter 2.4.2012, 12:03
1. Чтобы распространять программу с заполненной базой, подключите файл к проекту. Тем самым Вы положите его в папку проекта (бандл), если вам нужно его редактировать и дополнять, то при первом запуске скопируйте файл базы в папку Documents или Library/Caches и пользуйте оттуда.
Если Вы разобрались как работать с базой, почему спрашиваете как будет происходить загрузка? Чтобы работать с базой ее нужно открыть примерно так
Код

    NSString *filename = @"Database.sqlite";
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pathDB = [documentsDirectory stringByAppendingPathComponent:filename];

    if (sqlite3_open([pathDB UTF8String], &dataBase) == SQLITE_OK) {
        // База открыта для работы
    }


2. Вы видимо не понимаете что такое сторибоард. Сторибоард не управляется контроллерами, а наоборот - интерфейс контроллеров описывается в сторибоарде.  Фраза "каждый из них управлялся своим контроллером" абсолютно бессмысленна, так как Вы загружаете нужный Вам контроллер в нужное время ИЗ сторибоарда. Это значит, что вы можете описать интерфейс и его поведение всего Вашего приложение в одном месте, и создать столько контроллеров сколько вам нужно. Зачем Вам несколько сторибоардов, если для этого есть XIB? 
В общем идея такая - для того чтобы было наглядное представление как работает программа, и как выглядит ее интерфейс во всех частях (чтобы окинуть все одним взглядом) - придумали сторибоард. Он никак не зависит от контроллеров, но может их создавать для Вас по вашему требованию.
Но тем не менее, сделать несколько сторибоардов можно, и иногда даже нужно. Например когда Вам нужно описать поведение независимой (от основной логики) части приложения. Для этого Вы можете просто создать новый сторибоард через Файл/Нью, но в проекте все равно указывается какой сторибоард считать главным (Main storyboard)

Автор: duceum 4.4.2012, 22:20
Большое спасибо за ответ!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)