프로그램을 실행하려고하면 다음과 같은 오류가 발생합니다. 왜 내가 그걸 갖게 된거 야? 나는 지금 몇 시간 동안 노력했지만 포기합니다. 감사!iPhone 및 sqlite 쿼리 관련 문제
에러 :
2011-03-08 19 : 18 : 29.967 iphoneApp [2561 : 207] * 종료 앱 의한 캐치되지 않는 예외 'NSInvalidArgumentException', 이유에 「* + [있는 NSString stringWithUTF8String :] : NULL cString '
- (AnswerDTO *)findAnswerById:(NSInteger)primary_key {
AnswerDTO *dto = [[[AnswerDTO alloc] init] autorelease];
sqlite3_stmt *statement = nil;
const char *sql = "SELECT * FROM klb_answers WHERE id = 7;";
if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
sqlite3_bind_int(statement, 1, primary_key);
NSInteger answerId = sqlite3_column_int(statement, ANSWER_ID);
NSInteger answerQuestionId = sqlite3_column_int(statement, ANSWER_QUESTION_ID);
NSString *answerDescription = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, ANSWER_DESCRIPTION)];
NSString *answerSerialNumber = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, ANSWER_SERIAL_NUMBER)];
NSInteger answerIsCorrect = sqlite3_column_int(statement, ANSWER_IS_CORRECT);
dto.answerID = answerId;
dto.questionID = answerQuestionId;
dto.description = answerDescription;
dto.serialNumber = answerSerialNumber;
if (answerIsCorrect == 0) {
dto.isCorrect = NO;
} else {
dto.isCorrect = YES;
}
} else {
NSLog(@"Noe feil med statementet");
}
sqlite3_finalize(statement);
return dto;
}
masochists는 Objective-C에서 SQLite C API를 사용합니다. [FMDB 사용] (http://github.com/ccgus/fmdb) 또는 [CoreData] (http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/CoreData/cdProgrammingGuide.html) . –