草庐IT

Swift 4 将数据拆分为其他数据 ([Uint8])

我是Swift的新手,我正在寻找一种方法来将Data数据类型拆分为另一个Data的较小块。我在Apple文档中找不到任何合适的方法。每个方法(split、filter、index...)都通过传递一个UInt8来工作,但我需要传递一个[Uint8]。例如:vardata:Data=Data.init([0x00,0x00,0x00,0x01,0xAB,0x02,0x03,0x00,0x00,0x00,0x01,0xEE,0xBB,0x14,0x24])varseparator:Data=Data.init([0x00,0x00,0x00,0x01])我需要像data.split(sep

JS各种数据流之间的格式(ArrayBuffer、Uint8Array、Blob、 File、DataURL)相互转换及应用

JS各种数据流之间的格式(ArrayBuffer、Uint8Array、Blob、File、DataURL)相互转换及应用前端网页 File 上传、下载,Canvas 保存图片,Ajax 和 Fetch 二进制流传输,PDF 预览,浏览器上 WebAssembly 的应用 等等都需要到 ArrayBuffer 和 Blob 。API介绍FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用File或Blob对象指定要读取的文件或数据。Blob对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成Rea

swift - Swift 中的 UInt64 按位运算崩溃

我需要执行此函数以从无符号64位整数中获取lsb,但操作失败。我不太擅长按位运算;有人可以帮帮我吗?funclsb(id:UInt64)->UInt64{returnUInt64(Int64(id)&-Int64(id))}谢谢。 最佳答案 您需要避免3种类型的操作溢出:UInt64到Int64否定Int64到UInt64以上全部改为无溢出操作,你的代码变为:funclsb(id:UInt64)->UInt64{returnUInt64(bitPattern:Int64(bitPattern:id)&(0&-Int64(bitPat

ios - 在 Swift 中将 UInt32 (UTF-32) 转换为字符串

我有一个UInt32的数组值。我想将此数组转换为String。这行不通:letmyUInt32Array:[UInt32]=[72,101,108,108,111,128049]letmyString=String(myUInt32Array)//errorletmyString=String(stringInterpolationSegment:myUInt32Array)//[72,101,108,108,111,128049](notwhatIwant)这些SO帖子显示UTF8和UTF16:HowcanIcreateaStringfromUTF8inSwift?Isthereaw

arrays - UInt32 数组到 Double 数组 Swift

我需要在swift中乘以2个矩阵,所以为了使用加速,我需要2个double类型的数组。问题是,我需要相乘的两个数组是UInt32类型。有没有办法将UInt32数组转换为double组?varUInt32TestArray:[UInt32]=[1,4,2,3]varInt32TestArray:[Double]=[Double](UInt32)//Doesn'twork 最佳答案 使用UInt32TestArray.map{Double($0)}获取Double的数组。 关于arrays-

swift - 无法将类型 'Swift.UInt32' 的值转换为 'Swift.Int'

在测试项目中,我得到了带有一些测试辅助函数的扩展。像这样:extensionEmployee{staticfuncmockDict()->Dictionary!{return["ID":arc4random()%1000,"FirstName":"EmployeeFirstName",...]}}(我删除了不必要的代码)。由于某些未知原因,我无法从此词典访问ID。类型转换时我有SIGABRT6employeeDict["ID"]as!IntXcode调试器控制台也不喜欢这个特定的整数:字符串工作正常。你遇到过这样的问题吗?有什么想法吗?编辑:以防万一有人也会遇到这个问题。从UInt32

ios - 无法将类型 'UInt' 的值转换为预期的参数类型 'UnsafeMutablePointer<UInt>'

我正在尝试从可通过URL访问的内容中初始化一个字符串:actualresponse.response=String(contentsOfURL:url,usedEncoding:NSUTF8StringEncoding)我收到以下错误,指向usedEncoding:Cannotconvertvalueoftype'UInt'toexpectedargumenttype'UnsafeMutablePointer'谁能告诉我为什么会抛出这个错误,我该如何解决? 最佳答案 有两种相似但不同的方法可能会被弄错。通常的方法是init(cont

swift - 如何从可选的 Int 初始化可选的 UInt?

我想将可选的Int转换为可选的UInt:letoptionalNumber:Int?//laterincodeletoptionalPositiveNumber=UInt(optionalNumber)给出错误:Cannotinvokeinitializerfortype'Uint'withanargumentlistoftype(Int?)我可以通过为UInt创建以下扩展来解决这个问题:extensionUInt{init?(_number:Int?){ifletnumber=number{self=UInt(number)}}}有没有一种方法可以将Int?转换为UInt?而无需使用

arrays - Swift - 将 UInt8 字节转换为位数组

我正在尝试解码protobuff编码的消息,因此我需要将protobuff消息中的第一个字节(key)转换为位,以便找到字段编号。如何将UInt8(字节)转换为位数组?伪代码privatefuncfindFieldNum(frombyte:UInt8)->Int{//Byteis00011010varfieldNumBits=byte[1]++byte[2]++byte[3]++byte[4]//concatentatesbitstoget0011getFieldNum(from:fieldNumBits)//Converts0011tofieldnumber,2^1+2^0=3}我看

ios - '不安全指针<UInt8 >' is not convertible to ' 不安全指针<_>'

我正在做tripleDES加密和解密。收到此错误:UnsafePointer'isnotconvertibleto'UnsafePointer我收到错误的代码是:letkeyString="25d1d4cb0a08403e2acbcbe0"letkeyData=keyString.data(using:.utf8)!letmessage=passletdata=message.data(using:.utf8)!letcryptData=NSMutableData(length:Int(data.count)+kCCBlockSize3DES)!letkeyLength=size_t(