Tôi đang trên beta 3. Hãy xem xét các dòng Objective-C sau:Swift - chuyển đổi từ ConstUnsafePointer <()>
const uint8_t *reportData = [data bytes];
nơi data
là một đối tượng NSData
.
Dòng này sẽ được viết lại bằng Swift như thế nào?
data.bytes
thuộc loại ConstUnsafePointer<()>
và trong khi có nhiều tài liệu về cách tạo loại con trỏ trong Swift, không có nhiều thông tin về cách làm việc với chúng.
chỉnh sửa: Để thêm một số ngữ cảnh, tôi đang cố gắng chuyển mã mẫu HeartRateMonitor của Apple sang Swift. Mã này tương tác với các màn hình nhịp tim BLE. Mã này tôi đang làm việc trên dịch các dữ liệu nhận được bởi hệ thống Bluetooth vào một int để sử dụng trong giao diện người dùng. Dữ liệu nhận được từ BT được mong đợi là một mảng uints, phần tử 0 được sử dụng để kiểm tra cờ và phần tử 1 chứa giá trị.
Đây là dòng Objective-C tương tự trong bối cảnh:
const uint8_t *reportData = [data bytes];
uint16_t bpm = 0;
if ((reportData[0] & 0x01) == 0)
{
/* uint8 bpm */
bpm = reportData[1];
}
nó là gì bạn muốn làm gì với nó? Bạn đang làm gì trong Objective-C? Bạn đã thử làm điều tương tự chưa? Kinh nghiệm của tôi là mọi thứ cứ tiếp tục hoạt động. Ví dụ: "byte" riêng lẻ có thể truy cập được bằng cách sử dụng subscripting. – matt
đã thêm một số ghi chú khác trong câu hỏi gốc với ngữ cảnh –
Và bạn đã thử dịch trực tiếp? Như tôi đã nói trước đây, kinh nghiệm của tôi là việc subscripting sẽ hoạt động giống như bạn mong đợi. – matt