Как заставить симулятор xcode показывать данные в sqlite?
Я делаю словарь, но я не получил результат в моем симуляторе.
#define FIRSTINIT 0
- (id)init{
self = [super init];
if (self!=nil) {
#if FIRSTINIT
[self createDB];
[self createTable];
[self insertRecordWithEN:@"cc" CN:@"我" Comment:@"點"];
#endif
}
return self;
}
- (BOOL)createDB{
int ret = sqlite3_open([self getFilePath ], &pdb);//open
if (SQLITE_OK == ret) {//success
sqlite3_close(pdb);//close
return YES;
}else{
return NO;//fail
}
}
- (NSMutableArray*)query:(NSString *)str{
NSMutableArray* arr =[[NSMutableArray alloc]init];//save result
if (SQLITE_OK != sqlite3_open([self getFilePath ], &pdb)){
return NO;
}
char* sql = "select * from dictionary where en like ? or cn like ? or comment like ?;";//search
sqlite3_stmt* stmt;
if (sqlite3_prepare_v2(pdb, sql, -1, &stmt, nil)==SQLITE_OK) {//prepare
sqlite3_bind_text(stmt, 1,[[NSString stringWithFormat:@"%%%@%%",str]UTF8String], -1, NULL);
sqlite3_bind_text(stmt, 2, [[NSString stringWithFormat:@"%%%@%%",str]UTF8String], -1, NULL);
sqlite3_bind_text(stmt, 3, [[NSString stringWithFormat:@"%%%@%%",str]UTF8String], -1, NULL);
}else{
return nil;
}
while( SQLITE_ROW == sqlite3_step(stmt) ){//execute
char* _en = (char*)sqlite3_column_text(stmt, 1);
char* _cn = (char*)sqlite3_column_text(stmt, 2);
char* _comment = (char*)sqlite3_column_text(stmt, 3);
NSMutableDictionary* dict = [[NSMutableDictionary alloc]init];//single
[dict setObject:[NSString stringWithCString:_en encoding:NSUTF8StringEncoding] forKey:@"kEN"];
[dict setObject:[NSString stringWithCString:_cn encoding:NSUTF8StringEncoding] forKey:@"kCN"];
[dict setObject:[NSString stringWithCString:_comment encoding:NSUTF8StringEncoding] forKey:@"kCOMMENT"];
[arr addObject:dict];//result
}
sqlite3_finalize(stmt);
sqlite3_close(pdb);
return [arr autorelease];//return
}
Я не могу найти никаких предупреждений, и симуляция успешно работает.
Я делаю словарь, но я не получил результат в моем симуляторе.
После моих поисков результата нет.