Tôi đang viết một đặc tính HomeKit (có thể là Bluetooth) ở định dạng TLV8. Táo doc nóiChuẩn bị dữ liệu trong TLV8
Giá trị là một đối tượng NSData chứa một tập hợp của một hoặc nhiều của TLV8, được đóng gói các mặt hàng loại dài có giá trị với một loại 8-bit, 8-bit chiều dài, và N giá trị byte.
Theo Wikipeida một giá trị kiểu chiều dài là
Loại
Một mã nhị phân, thường chỉ đơn giản là chữ và số, mà chỉ ra các loại lĩnh vực mà khu vực này của thông điệp thể hiện;
Chiều dài
Kích thước của trường giá trị (thường tính bằng byte);
Value
Biến cỡ loạt các byte chứa dữ liệu cho phần này của thư.
Tôi không biết cách đóng gói. Tôi cho rằng tôi có thể viết các byte thô thành NSData, nhưng tôi phải viết gì cho pad, nếu tôi cần bất kỳ phần đệm nào, v.v. Vậy có ví dụ về cách thực hiện điều đó không?
Swift dường như không thể suy ra các loại nữa từ các mã trên. Điều này dường như làm việc mặc dù: 'đang để cho tag: uint8 = 0x02 phép chiều dài: uint8 value = 0x01 let: uint8 = 0x01 hãy byte: [uint8] = [tag, chiều dài, giá trị] ' – addzo
8 trong TLV8 chỉ ra rằng loại và chiều dài là 8-bit –