Swift use sizeof with Int32 Array

后端 未结 2 1079
一整个雨季
一整个雨季 2020-12-20 13:37

i want to get the Length of an Array with \"sizeof\". I tried everything. This is the error message: \"[Int32] is not convertible to T.Type\"

The Array has to be Int

2条回答
  •  清酒与你
    2020-12-20 14:40

    You can get the number of elements in an array simply with

    let count = testArray.count
    

    and the total number of bytes of its elements with

    var arrayLength = testArray.count * sizeof(Int32)
    // Swift 3:
    var arrayLength = testArray.count * MemoryLayout.size
    

    sizeof is used with types and sizeofValue with values, so both

    var arrayLength = sizeof([Int32])
    var arrayLength = sizeofValue(testArray)
    

    would compile. But that gives you the size of the struct Array, not the size of the element storage.

提交回复
热议问题