Оболочка базы данных sqlite для объекта c - PullRequest
0 голосов
/ 14 февраля 2012

Я разработал приложение и использовал упаковщик базы данных sq-lite (BWDB - оболочка Билла В. .....) для своего приложения на основе вкладок, и когда я создавал объект базы данных на своем первом контроллере представления с использованием этого кода

- (DBAccess *) loadDBAccessDatabase {
    // NSLog(@"%s", __FUNCTION__);
    if (!_dbObject) {

        NSString * _dbFileName = @"turfnutritiontool_ver_one.db";
        _dbObject = [[DBAccess alloc] initWithSSDBAccessFilename:_dbFileName];
    }
    // Check Point
    [TestFlight passCheckpoint:@"LOAD_DATABASE"];
    return _dbObject;
}

, и он работает для меня в этом контроллере представления, но если я создаю новый объект при загрузке контроллера второго представления, поэтому новый объект БД прекрасно работает для извлечения данных, но я не могу вставить или обновить базу данных, он говорит, что БД заблокирована, поэтому скажите мне, как я могу управлять только одним объектом БД во всем приложении и отправлять его на другой контроллер представления, чтобы он работал нормально,

1 Ответ

0 голосов
/ 14 февраля 2012

То есть вы создаете два объекта класса, содержащих этот код? Если это так, самый простой способ - сделать член _dbObject статическим, как в

static DBAccess *_dbObject;

Если пойти дальше, вы можете рассмотреть возможность создания синглтона для ссылки на базу данных. Введение в синглтоны для Какао предоставлено Apple в Mac OS X Developer Library .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...