"왜"SQLiteDB가 "-checkIfDatabaseExists"에 응답하지 않을 수 있는지 이해하지 못합니다. 이 문제의 원인은 무엇이며 어떻게 수정합니까? (나는 이것이 작동하도록하는 것에 매우 가깝지만, 나는 초보자이기 때문에 여전히 문제가있다.)이 문제의 원인은 무엇입니까?
감사의 말 :
#import "SQLiteDB.h"
static SQLiteDB *sharedSQLiteDB = nil; // makes this a singleton class
@implementation SQLiteDB
@synthesize db, dbPath, databaseKey;
//-------------- check for database or create it ----------------|
#pragma mark Singleton Methods
+ (SQLiteDB *) sharedSQLiteDB {
if(!sharedSQLiteDB) {
sharedSQLiteDB = [[SQLiteDB alloc] init];
[sharedSQLiteDB checkIfDatabaseExists];
}
return sharedSQLiteDB;
}
+(id)allocWithZone:(NSZone *)zone {
if(!sharedSQLiteDB) {
sharedSQLiteDB = [super allocWithZone:zone];
return sharedSQLiteDB;
}
else {
return nil;
}
}
-(id)copyWithZone:(NSZone *)zone {
return self;
}
-(void) release {
// no-op
}
- (void) checkIfDatabaseExists {
// Get the path to the database file
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [searchPaths objectAtIndex:0];
NSString *databasePath = [documentPath stringByAppendingPathComponent:@"ppcipher.s3db"];
// Open the database file
const char *cDatabasePath = [databasePath cStringUsingEncoding:NSUTF8StringEncoding];
if(sqlite3_open(cDatabasePath, &db) == SQLITE_OK) // does it exist?
return;
else { // create database file here
}
}
@end
스크린 샷뿐만 아니라 텍스트로 코드를 붙여 넣으십시오. – mkb
물론 .... 왜 다른 데이터베이스 래퍼를 작성하는 것이 귀찮을까요? 핵심 데이터는 iOS/Mac OS X에서 데이터베이스를 만드는 가장 뛰어난 성능을 자랑합니다 (임의의 스키마가없는 SQLite 데이터베이스를 랩핑해야하는 경우 FMDB가 가장 좋은 방법입니다). – bbum