FMDB executeUpdate を使用して、以下の挿入ステートメントで EXC_BAD_ACCESS を取得します。FMDatabase の bindObject toColumn で発生します。
NSlog ステートメントでは、正しい値が得られますが、update ステートメントが爆発します。ここで何が間違っているのかわかりません。
- (void) addSubject {
DrillDownAppAppDelegate *appDelegate = (DrillDownAppAppDelegate *)[[UIApplication sharedApplication] delegate];
FMDatabase *database = [FMDatabase databaseWithPath:appDelegate.getDBPath];
[database open];
NSLog(@"SUBJECT_ID/TITLE/CATEGORY_TITLE = %d / %@ / %@", self.subject_id, self.title, self.category_title);
[database executeUpdate:@"insert into SUBJECT (subject_id, subject, category) values(?, ?, ?)",
self.subject_id, self.title, self.category_title, nil];
[database close];
}
私は FMDatabase コードを調べましたが、最初の変数のように見えます。NSInteger と NSNumber の両方で保存しようとしましたが、どちらも同じクラッシュを引き起こしました。
クラッシュする FMDatabase の正確な行は次のとおりです。
else if ([obj isKindOfClass:[NSData class]]) {
subject_id を NSInteger (または NSNumber) として渡し、エラーを出しています。