[英]how can i modify and reverse every bit in NSData using swift language ?
如何使用 swift 語言修改和反轉 NSData 中的每一位? 我想做一些類似代碼混亂的事情。
//.....
let tempstring : String = "hello world!"
let tempnsstring : NSString = tempstring as NSString
var tempnsdata : NSData!
tempnsdata = tempnsstring.dataUsingEncoding(encoding)
//....
那么..請告訴我如何修改 NSData 中的數據? 給我一些關於編碼的提示。 謝謝
NSData
是不可變類型,因此您無法修改其內容。
兩種選擇。
(1) 新建一個修改內容的NSData
。
let tempstring = "hello world!"
let encoding = NSUTF8StringEncoding
let tempnsdata = tempstring.dataUsingEncoding(encoding)!
var tempbytes: [UInt8] = Array(count: tempnsdata.length, repeatedValue: 0)
tempnsdata.getBytes(&tempbytes, length: tempbytes.count)
for i in tempbytes.indices {
tempbytes[i] = ~tempbytes[i]
}
let modifiednsdata = NSData(bytes: tempbytes, length: tempbytes.count)
//Use `modifiednsdata`...
(2) 創建一個可變副本並修改其中的內容。
let tempstring = "hello world!"
let encoding = NSUTF8StringEncoding
let tempnsdata = tempstring.dataUsingEncoding(encoding)!
let tempnsmutabledata = tempnsdata.mutableCopy() as! NSMutableData
let mutabledataptr = UnsafeMutablePointer<UInt8>(tempnsmutabledata.mutableBytes)
for i in 0..<tempnsmutabledata.length {
mutabledataptr[i] = ~mutabledataptr[i]
}
//Use `tempnsmutabledata` as `NSData`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.