나는 MongoDB의에서 데이터 객체를 저장할 :MongoDB에서 Swift Data 또는 NSData를 저장하고 검색하는 방법은 무엇입니까?
그것은 NSURLSession 사용 CryptoSwift
let bytes = dataString.utf8.map({$0})
let encrypted = try! ChaCha20(key: getAESP(), iv: "zzzzzzzzzzzzzz").encrypt(bytes)
let encryptedData = Data(bytes: encrypted)
를 사용하여 생성되고 서버로 전송 있어요 : 내 모델 방식에서
let postData = NSMutableData(data: "patient_id=\(patientID)".data(using: String.Encoding.utf8)!)
postData.append("&data=".data(using: String.Encoding.utf8)!)
postData.append(encryptedData)
let request = NSMutableURLRequest(url: NSURL(string: "\(url)api/patient/document")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
을 나는 등의 데이터를 설명 버퍼 :
var DocumentSchema1 = new Schema({
created_at:Date,
created_by:String,
document_type:String,
document_name:String,
data: Buffer,
modifications: [
{
modified_by: String,
modified_at: Date,
data: Buffer
}
],
isDeleted: Boolean,
deleted_at: String,
deleted_by: String,
})
문제는 이 접근 방식은 웹 서비스에서 반환 된 JSON이 데이터가 아닌 버퍼 유형이며 아래의 신속 조건이 실행되지 않는다는 것입니다.
if let dataString = dict["data"] as? Data{
Mongo에서 이진 데이터를 다시 가져 와서 Swift에서 사용하려면 어떻게해야합니까?
EDIT2 다음 zaph의 답변에 따라이 : 그래서 데이터 요소 INT64 (35) 내가 캐스팅 할 수있는 유일한 방법은 Array<AnyObject>
이다하지만이 형태로 주어진 데이터로 변환 할 수 없습니다와 __NSArrayI로 제공됩니다. 에 캐스팅
시도 :
Array<Int64>
- [UINT64]
- [UINT8]
- [INT64]
- UnsafeRawPointer
에 실패했습니다.
if let a = dataDict["data"] as? Array<Int64>
힌트 : 당신은 일반적인 암호화 암호화 속도에서 AES를 사용하는 경우 크기가 더 빠르다. – zaph
'init (bytes : UnsafeRawPointer, count : Int)'시도해 바이트로부터'Data' 객체를 생성하십시오. – zaph
어떻게 UnsafeRawPointer를 얻을 수 있습니까? 업데이트 된 질문을 확인하십시오. –