簡體   English   中英

如何使用 swift 語言修改和反轉 NSData 中的每一位?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM