문제

나는 그 사이의 차이점을 이해합니다 unsigned char * 그리고 char * 유형. 또한 RenterPret_cast를 사용하여 캐스트하는 방법을 이해합니다. unsigned char * a char * C ++에서.

나는 Objective-C에서 sqlite3를 사용하고 있으며 NSString 전화에서

sqlite3_column_text(...);

이렇게하려면 기본적으로 다음을 수행하고 있습니다.

char *cParam = (char *)sqlite3_column_text(compiledStatementPtr, 0);
NSString *aParam = nil;
if (cParam) {
    aParam = [NSString stringWithUTF8String:cParam];
}

sqlite3_column_text(), 그러나 반환합니다 unsigned char * 그리고 나는 캐스트의 행동에 대해 걱정 char *. 나는 캐스트가 구현된다는 것을 읽었으며 이것이 객관적인 C에서 안전한 캐스트인지 아니면 내가 잘못된 나무를 완전히 짖는 지 궁금하다.

도움이 되었습니까?

해결책

캐스트로 인해 걱정할 것이 많지 않습니다. 실제로 Apple Sample Code는 사용중인 동일한 코드 패턴을 사용합니다.

self.title =
  [NSString stringWithUTF8String:(char *)sqlite3_column_text(init_statement, 0)];

(에서 SQLite Book List Book.m 수업).

실제로 데이터베이스에 더 관심이 있어야한다고 생각합니다. UTF-8 문자열.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top