У меня есть класс с именем SqliteImageAccess, который будет иметь различные методы, обеспечивающие поддержку некоторых функций sqlite.У меня есть локальная переменная класса типа sqlite3 и метод класса с именем opendb.Этот метод класса должен делать только одно и только одно.Откройте базу данных.
Единственный неприятный момент здесь заключается в том, что мой объект sqlite3 будет переменной экземпляра, а Objective-C, по какой-то странной причине, не позволяет вам обращаться к переменным экземпляра внутри методов класса.Очевидно, что в других языках, когда вы создаете экземпляр класса, конструктор этого класса может вызывать закрытый метод для инициализации некоторых локальных переменных класса (возможно, локальной закрытой переменной).Я хочу сделать то же самое с моим объектом sqlite3 через эквивалент метода конструктора класса Objective-C.Возможно, кто-то может помочь, потому что я застрял на этом.
Очевидно, что в другом классе я могу создать экземпляр класса SqliteImageAccess, а затем вызвать метод opendb.Это отлично работает.Я не хочу этого делать.Когда я создаю экземпляр класса, цель состоит в том, чтобы класс автоматически обрабатывал открытие базы данных.
Наконец, с другими методами, которые будут доступны для выполнения другой работы sqlite (вставки и т. Д.), Мне понадобится полный доступ к объекту db.заранее спасибо за любую помощь.
// SqliteImageAccess.h
@interface SqliteImageAccess : NSObject {
}
+(void)opendb; //class method
@end
// SqliteImageAccess.m
#import "SqliteImageAccess.h"
@implementation SqliteImageAccess
static sqlite3 *db;
+(void)initialize{
[self opendb];
}
+(void)opendb{
int open = sqlite3_open("/Users/csmith/RPG/cws.sqlite3", &db);
if(open == SQLITE_OK){
NSLog(@"Database was opened successfully");
}
else {
NSLog(@"open result = %d", open);
}
}
@end