2013년 11월 25일 월요일

Cocos2d-x IOS 프로젝트에서 Sqlite3사용하기

1. 프로젝트에 sqlite3 라이브러리 추가

2. 미리 생성된 .sqlite(또는 .db)파일을 IOS프로젝트의 Resources디렉토리에 위치시킨다.
3. 초기 구동시 DB를 복사한다.

복사방법 : 



#pragma mark -
#pragma mark Initialize DB (Resource에 있는 sqlite파일을 Document로 복사)
void initializeDB()
{
    NSFileManager* fm  = [NSFileManager defaultManager];
    const char* dbPath = filePath("nih_DB.sqlite");
    
    //[fm removeItemAtPath:[NSString stringWithUTF8String:dbPath] error:NULL];
    
    BOOL fileExists    = [fm fileExistsAtPath:[NSString stringWithUTF8String:dbPath]];
    
    if(!fileExists)
    {
        // 참조 데이터베이스 파일 경로
        NSString* origin = [[NSBundle mainBundle]pathForResource:@"nih_DB" ofType:@"sqlite"];
        
        // Copy DB
        BOOL      copyDB = [fm copyItemAtPath:origin toPath:[NSString stringWithUTF8String:dbPath] error:NULL];
        if(!copyDB)
        {
            printf("Copy failed!");
        }
    }
}

#pragma mark -
#pragma mark File Path
const char* filePath(char* _name)
{
    NSString *name      = [NSString stringWithUTF8String:_name];
    NSArray *paths      = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path      = [paths objectAtIndex:0];
    NSString *_filePath = [path stringByAppendingPathComponent:name];
    
    return [_filePath UTF8String];
}

댓글 없음:

댓글 쓰기