0
다음 문에 NSInteger를 바인딩 경고를 던지고있다. extID
에 매우 긴 숫자가 포함되어있을 가능성이 있기 때문에 이것을 int
으로 유지할 수 없습니다.SQLite는 문
이 경고는 어떻게 제거합니까? 어떤 주조를해야합니까? sqlite3_bind_int
대신 sqlite3_bind_int64
사용자를 사용할 수 있습니까? int
에
다음 문에 NSInteger를 바인딩 경고를 던지고있다. extID
에 매우 긴 숫자가 포함되어있을 가능성이 있기 때문에 이것을 int
으로 유지할 수 없습니다.SQLite는 문
이 경고는 어떻게 제거합니까? 어떤 주조를해야합니까? sqlite3_bind_int
대신 sqlite3_bind_int64
사용자를 사용할 수 있습니까? int
에
캐스트를 :
sqlite3_bind_int(statement, 1, (int)obj.extId);
또는 int64
바인드 함수를 사용
sqlite3_bind_int64(statement, 1, obj.extId);
문제는 당신이 모두 구축 32 비트 및 NSInteger
의 64 비트 다음 크기 경우 당신이 만들고있는 것에 따라 바뀔 것입니다. 정수가 32 비트를 넘지 않는다는 것을 안다면 32 비트를 넘을 수 있다는 것을 안다면 NSInteger
대신 int64_t
을 사용하고 두 번째 방법을 사용하면 가장 좋은 방법이라고 생각합니다.
int 형으로 타입 변환하면 데이터가 손실 될 수 있습니다. !! 나는 그런 일이 일어나지 않는다 ..! – Shradha
@Shradha OK가 내 대답을 업데이트했습니다. 나는'int64_t'를 사용하는 것이 값이 32 비트를 넘을 것이라고 생각한다면 최선이라고 생각합니다. – Droppy
문제는 정수가 32 비트를 초과하여 int로 변환 할 수 없다는 것입니다. – Shradha