相关疑难解决方法(0)

往返数据的往返Swift数字类型

由于Swift 3倾向于Data而不是[UInt8],我试图找出最有效/惯用的编码/解码方式将各种数字类型(UInt8,Double,Float,Int64等)作为数据对象.

对于使用[UInt8]这个答案,但它似乎使用了我在Data上找不到的各种指针API.

我想基本上一些自定义扩展看起来像:

let input = 42.13 // implicit Double
let bytes = input.data
let roundtrip = bytes.to(Double) // --> 42.13
Run Code Online (Sandbox Code Playgroud)

真正逃避我的部分,我已经查看了一堆文档,我是如何从任何基本结构(所有数字都是)得到某种指针的东西(OpaquePointer或BufferPointer或UnsafePointer?).在C中,我只是在它前面拍一个&符号,然后就去了.

swift swift3 swift-data

84
推荐指数
1
解决办法
4万
查看次数

如何将字节数组转换为double和back?

为了将字节数组转换为double,我发现了这个:

//convert 8 byte array to double
int start=0;//???
int i = 0;
    int len = 8;
    int cnt = 0;
    byte[] tmp = new byte[len];
    for (i = start; i < (start + len); i++) {
        tmp[cnt] = arr[i];
        //System.out.println(java.lang.Byte.toString(arr[i]) + " " + i);
        cnt++;
    }
    long accum = 0;
    i = 0;
    for ( int shiftBy = 0; shiftBy < 64; shiftBy += 8 ) {
        accum |= ( (long)( tmp[i] & 0xff ) ) << shiftBy; …
Run Code Online (Sandbox Code Playgroud)

java double bytearray

44
推荐指数
5
解决办法
9万
查看次数

如何在 Swift 中将 Int 转换为 4 个字节的字节数组?

我正在使用 Swift 并尝试将 Int(例如:-1333)转换为 4 个字节的字节数组。我能够将 Int 转换为 8 个字节的数组(-1333 变为 [255, 255, 255, 255, 255, 255, 250, 203]),但我需要它是 4 个字节。我知道有其他方法可以用其他语言(比如 Java)来做到这一点,但是 Swift 有没有办法呢?这是我的代码:(我使用了这个答案)

func createByteArray(originalValue: Int)->[UInt8]{
        var result:[UInt8]=Array()

            var _number:Int = originalValue

            let mask_8Bit=0xFF

            var c=0
            var size: Int = MemoryLayout.size(ofValue: originalValue)
            for i in (0..<size).reversed(){
                //at: 0 -> insert at the beginning of the array
                result.insert(UInt8( _number&mask_8Bit),at:0)
                _number >>= 8 //shift 8 times from left to right
            }

        return result
    }
Run Code Online (Sandbox Code Playgroud)

byte swift

5
推荐指数
1
解决办法
6510
查看次数

如何在 Swift 中将浮点数的连续数组转换为字节数组?

我正在尝试在 Swift 中将浮点的连续数组转换为字节数组,但在不使用 for 循环的情况下无法找到明智的方法。我一直在关注以前的帖子,例如How to conversion a double into a byte array in swift? ,但如果不逐一迭代获取每个元素,我无法检索数组的内容。

有没有一种优雅的方法可以直接将 ContigouslyArray 的字节“复制”到字节数组?

PS:我已经成功实现了将结构转换为字节数组,但无法对数组执行相同的操作。

arrays serialization binaryfiles swift

3
推荐指数
1
解决办法
1038
查看次数

致命错误:从未对齐的原始指针加载

对于iPhone5 (10.2) 模拟器此功能:

static func fromByteArray<T>(_ value: [UInt8], _: T.Type) -> T {
        return value.withUnsafeBytes {
            $0.baseAddress!.load(as: T.self)
        }
    }
Run Code Online (Sandbox Code Playgroud)

$0.baseAddress!.load(as: T.self)因此错误而崩溃:

致命错误:从未对齐的原始指针加载

有人知道解决方案吗?

我正在使用此代码:

/sf/answers/1886786401/

编辑 它适用于 iPhone5s 但不适用于 iPhone5

ios swift

0
推荐指数
1
解决办法
1809
查看次数

标签 统计

swift ×4

arrays ×1

binaryfiles ×1

byte ×1

bytearray ×1

double ×1

ios ×1

java ×1

serialization ×1

swift-data ×1

swift3 ×1