Tôi đang làm việc để thay đổi một số Mã Mục tiêu-C sang Swift, và tôi không thể hiểu được cuộc sống của tôi như thế nào để chăm sóc mảng char chưa được ký và thao tác bit trong trường hợp mã cụ thể này.Sử dụng mảng char unsigned char kiểu mẫu và các toán tử bitwise trong Swift
Cụ thể, tôi đang làm việc trên chuyển đổi mã Objective-C sau đây (trong đó giao dịch với CoreBluetooth) để Swift:
unsigned char advertisementBytes[21] = {0};
[self.proximityUUID getUUIDBytes:(unsigned char *)&advertisementBytes];
advertisementBytes[16] = (unsigned char)(self.major >> 8);
advertisementBytes[17] = (unsigned char)(self.major & 255);
Tôi đã thử những điều sau đây Swift:
var advertisementBytes: CMutablePointer<CUnsignedChar>
self.proximityUUID.getUUIDBytes(advertisementBytes)
advertisementBytes[16] = (CUnsignedChar)(self.major >> 8)
Các vấn đề mà tôi đang gặp phải là getUUIDBytes trong Swift dường như chỉ lấy một đối tượng CMutablePointer<CUnsignedChar>
, chứ không phải là một mảng của CUnsignedChars, vì vậy tôi không biết làm thế nào để thực hiện các thao tác bitwise sau trên adsBytes, cần phải là một unsignedCh ar mảng để làm như vậy.
Ngoài ra, CMutablePointer<CUnsignedChar[21]>
ném một lỗi nói rằng mảng chiều dài cố định không được hỗ trợ trong CMutablePointers trong Swift.
Có ai vui lòng tư vấn về các giải pháp hoặc giải pháp tiềm năng không? Cảm ơn nhiều.
Ông có thể bao gồm các 'Objective-C' phiên bản quá? –