Как скопировать данные из другого массива данных в указанное место в Swift - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть 2 массива данных. Один из них является источником, а другой - местом назначения. Мне нужно скопировать данные из источника в место назначения по определенному индексу. В этом есть al oop, который копирует массив в массив назначения, и этот это как он называется copyDataOut (byteData, tempBuff, memoryLo c);

Я сделал в java с кодом:

private void copyDataOut(byte[] source, byte[] dest, int loc) {
    for (int i = 0; i < dest.length; i++) {
        dest[i] = source[i + loc];
    }
}

Как использовать нечто подобное в Swift , это быстрый код

copyDataIn (sr c: finalData, dest: byteData, lo c: memoryLo c) // скопировать данные в большой байтовый буфер

copyDataIn - это метод, который должен делать копию, аналогично тому, как это делается: java.

Ответы [ 3 ]

0 голосов
/ 10 февраля 2020

Вы можете написать функцию, которая занимает 2 UnsafeMutableRawBufferPointer с и количество байтов. Затем используйте copyBytes(from:count:) для копирования байтов.

В этой статье приведен краткий обзор использования небезопасных буферных указателей в Swift:

https://www.raywenderlich.com/7181017-unsafe-swift-using-pointers-and-interacting-with-c

0 голосов
/ 12 февраля 2020

У меня все получилось так быстро. Спасибо всем

 for i in 0..<finalData.count
            let newData= finalData.count[i]
              byteCardData[i+Loc] = newData

            }
0 голосов
/ 10 февраля 2020

Вы просто назначаете срез, используя оператор индекса, давая ему диапазон для записи:

let source = ["A", "B", "C"]
var dest = (1...10).map(String.init)

dest[5...7] = ArraySlice(source)

print(dest)
...