如何使用swift语言修改和反转NSData中的每一位?我想做一些像代码混淆的事情。
//Empty Photo Array
$scope.AllPhotosOfAlbumArray = [];
// Get All Photos Of Album
$scope.getAlbumPhotos = function (albumId) {
console.log(albumId);
logicOfMyApp.getAllPhotosOfALmubFromSrverFunc(albumId).then(function (photos) {
$scope.AllPhotosOfAlbumArray = photos;
console.log($scope.AllPhotosOfAlbumArray);
});
};
然后..请告诉我如何修改NSData中的数据?给我一些编码的暗示。感谢
答案 0 :(得分:1)
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`