私はxcodeが初めてで、sqliteを更新するのに問題があります。
readBioViewController.h
@interface readBioViewController : UIViewController {
NSString *fav;
}
readBioViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
fav = @"1";
}
- (IBAction)addFavorito:(id)sender {
DataDAO *dbCrud = [[DataDAO alloc] init];
NSLog(@"addFavorito favid '%@'.", fav);
[dbCrud addFavorito:fav];
}
DataDAO.m
-(void)addFavorito:(NSString *)fav {
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dirPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"versos.sqlite"];
BOOL success = [fileMgr fileExistsAtPath:dirPath];
if(!success) {
NSLog(@"Cannot locate database file '%@'.", dirPath);
}
if(!(sqlite3_open([dirPath UTF8String], &db) == SQLITE_OK)) {
NSLog(@"An error has occured.");
}
NSString *sql = @"update Versos set favorito = 1 Where id = 2";
char *err;
if(sqlite3_exec(db, [sql UTF8String], NULL, NULL, &err) != SQLITE_OK) {
sqlite3_close(db);
NSLog(@"erro no update");
} else
NSLog(@"fez o update");
}
ボタン (IBOutlet - addFavorito) があり、SQL を実行して ID (2) を更新したいと考えています。NSLog に結果 "NSLog(@"fez o update");" が表示されます。しかし、versos.sqlite を開くと、ID 2 の結果は favorito=0 で、favorito=1 はありません。