2015-02-03 3 views
1

sqlite에서 BLOB 데이터를 읽으려고하는데 Extra argument 'bytes' in call 오류가 발생합니다. 여기 blob 데이터를 호출 스왑에서 추가 인수 바이트

내 코드입니다 :

var len = sqlite3_column_bytes(compiledStatement, 0) 
var point = sqlite3_column_blob(compiledStatement, 0) 
var dbData:NSData? = NSData(bytes: point, length: len)// ERROR: Extra argument 'bytes' in call 

if dbData != nil 
{ 
    arrDataRow.addObject(dbData!) 
} 

답변

4

sqlite3_column_bytesInt32을 반환하지만 NSData(bytes:, length:)는 두 번째 인수로 Int, 따라서 사용자가 명시 적으로 값을 변환해야합니다 기대 : 또한

let dbData = NSData(bytes: point, length: Int(len)) 

주 이 NSData 이니셜 라이저는 이 아니며을 반환합니다 (선택 사항). 이므로 var dbData:NSData?에 할당하면 의미가 없습니다. 그리고 심지어 dbDatanil이 아닙니다.

let len = sqlite3_column_bytes(compiledStatement, 0) 
let point = sqlite3_column_blob(compiledStatement, 0) 
if point != nil { 
    let dbData = NSData(bytes: point, length: Int(len)) 
    // ... 
} 
+0

당신을 감사합니다 : 당신이 을 수행 할 수있는

sqlite3_column_blob()nil 여부를 반환하는지 확인하는 것입니다. 그것은 작동한다. – Chongzl