ArrayBuffer и Float64Array в Swift - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь преобразовать одну из функций javascript в функцию Swift 5. Но даже после стольких обширных поисков я ничего не смог найти.

function toArrayBuffer(type, ts, x, y, z, sc) {
  let userId = userID.getUserId();
  //console.log("Found GPS UserID: " + userId);
  if (userId == "Unauthor") {
    //console.log("GPS did not find the userID")
    return null;
  }

  let buffer = new ArrayBuffer(8 * 4);

  // Offset: 0
  let float64Bytes = new Float64Array(buffer);
  float64Bytes[0] = ts;

  // Offset: 8
  let bytes = new Float32Array(buffer);
  bytes[2] = x;
  bytes[3] = y;
  bytes[4] = z;
  bytes[5] = sc;

  // Offset: 24
  let uint8Bytes = new Uint8Array(buffer);
  uint8Bytes[24] = type;

  for (let i = 0; i < 8; i++) {
    if (userId.charCodeAt(i)) {
      uint8Bytes[i + 25] = userId.charCodeAt(i);
    }
  }

  return buffer;
}

В основном я пытался создать ту же функцию с помощью var byteArray = [UInt8](stringVal.utf8), но UInt8 может хранить только до 256, но мне пришлось хранить метку времени эпохи. Так что это тоже не работает. Любая помощь будет оценена.

...