Swift中,把NSData转换为Byte数组的三种方法

最近做IOS开发需要从一个NSData中读出数据。但是找不到相关文档。网上搜索也有人问,我看到有Objective-C的答案,但基本上没有Swift的方案。

NSData的bytes是UnsafePointer<Void>类型,我不知道怎样直接获取到他的值(如果你知道,请一定要告诉我)。

所以我自己摸索了一下把NSData转换为[Byte]的方法,希望起到抛砖引玉的作用。

下面直接在PlayGround中演示:

最后我采用的当然是第三种方法:

import Foundation

var b:[Byte] = [13,0xf1,0x20]
var d = NSData(bytes: b, length: 3)

//把NSData的值存到byteArray中
var byteArray:[Byte] = [Byte]()
for i in 0..<3 {
    var temp:Byte = 0
    d.getBytes(&temp, range: NSRange(location: i,length:1 ))
    byteArray.append(temp)
}
时间: 2024-10-14 13:50:45

Swift中,把NSData转换为Byte数组的三种方法的相关文章

结构体数组初始化三种方法,转载

C语言结构体初始化的三种方法:原文链接http://www.2cto.com/kf/201503/386575.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #include <stdio.h> struct student_st {     char c;     int score;     const c

Swift中的 as、as!、as? 三种操作符如何使用

Swift是苹果于2014年发布的新开发语言,运行于Mac OS和iOS平台,开发基于苹果平台的应用程序.在使用Swift语言的时候,我们经常会被 as.as!.as?三种类型转换操作符混淆,这里总结了三种操作符的用法. 1. as (1)从派生类转换为基类,向上转型(upcasts) // 定义人员基类 class Person { var name : String init(_ name: String){ self.name = name } } // 定义学生类 class Stude

JS中申明数组的三种方法

JS中的数组对象可以存放的元素非常丰富,包括number.String等基本的数据类型以及object对象还有数组类型,他们都可以构成数组元素的一部分. 方法1: var a = new array(); a[0] = "1";//String类型 a[1] = 2;//number类型 a[2] = { x:1, y:3};//object对象作为数组的元素 //方法2: var  a  =  new array("1" , 2 , {x:1,y:3} ); //

.Net中把字符串(String)格式转换为DateTime类型的三种方法

方式一:Convert.ToDateTime(string)  Convert.ToDateTime(string)  注意:string格式有要求,必须是yyyy-MM-dd hh:mm:ss 方式二:Convert.ToDateTime(string, IFormatProvider) 1 DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo(); 2 dtFormat.ShortDatePatter

JavaScript清空数组的三种方法

[文章系摘自网络,看到有用记录在博客,同时共享给大家] 原链接:http://www.2cto.com/kf/201409/335383.html 方式1,splice   var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 Array[0],空数组,即被清空了 方式2,length赋值为0 这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值.如 1 int[] ary = {1

PHP程序中删除字符串最后一个字符的三种方法

常见的语法格式: foreach ($arr as $key => $value) {$arr_str = $arr['x_id'] . ',' . $arr_str;} 假设字符数组 $arr 中的字符分别为 arr[0] = 'a';arr[1] = 'b';arr[2] = 'c'; 则,拼接后的 $arr_str 字符串为 a,b,c, 这个时候,就需要我们对最后一位字符','进行删除处理. 二php中删除最后一位字符的方法总结: 方法一: substr($arr_str,0,strle

判断一个对象是不是数组的三种方法

1.使用instanceof操作符 2.Array.isArray()  (ES5新增的方法) 3.使用Object.prototype上的原生toString()方法判断. 使用方法: Object.prototype.toString.call(value) var a={}; var b=[]; var frame=document.createElement("iframe");//创建一个框架 document.body.appendChild(frame); var c=w

C#中Math类的计算整数的三种方法

1.Math.Round:四舍六入五取偶 引用内容 Math.Round(0.0) //0 Math.Round(0.1) //0 Math.Round(0.2) //0 Math.Round(0.3) //0 Math.Round(0.4) //0 Math.Round(0.5) //0 Math.Round(0.6) //1 Math.Round(0.7) //1 Math.Round(0.8) //1 Math.Round(0.9) //1 说明:对于1.5,因要返回偶数,所以结果为2.

小胖说事29-----iOS中Navigation中左滑pop页面的三种方法

1.系统自带pop方法">系统自带pop方法 如果我们没有对navigation中的back按钮进行自定义,我们可以直接使用系统自带的左滑pop方法.但是如果我们对back按钮,进行了自定义,我们就要对self.navigationController.interactivePopGestureRecognizer这个属性进行设置了.关键代码: __weak typeof(self) weakSelf = self; self.navigationController.interactiv