2015-09-23 24 views
6

Sự khác biệt giữa CBUUID và đối tượng NSUUID ở đâu?Sự khác biệt giữa CBUUID và NSUUID trong swift

Tôi đã thấy để điền vào scanForPeripheralsWithServices với cả hai đối tượng trong các trường hợp khác nhau ... Apple mong đợi một đối tượng CBUUID vì vậy tôi muốn sử dụng loại này hoặc?

dụ của tôi:

let MY_SERVICE_UUID = CBUUID(string: "hdl83h6sd-gl95-bn4f-37gd-jd73hd0tn8za") func scanForPeripheralsWithServices(serviceUUIDs: MY_SERVICE_UUID,nil)

+0

Ví dụ cbuuid của bạn không hợp lệ - nó phải bao gồm các số thập lục phân 0-9 a-f – Paulw11

+0

Tôi xin lỗi về điều đó! bạn hoàn toàn đúng. – godlyblade

Trả lời

11

Một NSUUID là một số 128 bit được sử dụng để nhận diện đối tượng, các loại và các mặt hàng khác. Nó có thể được truy cập dưới dạng byte hoặc thường được sử dụng dưới dạng chuỗi - 68753A44-4D6F-1226-9C60-0050E4C00067. Lớp này bao gồm các phương thức để tạo cả UUID ngẫu nhiên và các thể hiện được khởi tạo với một giá trị chuyên biệt.

Bluetooth cũng sử dụng số nhận dạng 128 bit cho các đặc điểm và dịch vụ. Bluetooth SIG đã xác định nhiều dịch vụ và đặc điểm nổi tiếng. Các giá trị này được biểu thị dưới dạng giá trị 16 bit được kết hợp với UUID cơ sở Bluetooth để nhận được giá trị 128 bit đầy đủ.

Phương pháp CBUUID biết các giá trị nổi tiếng này và có thể tự động chuyển đổi giá trị 16 bit thành tương đương 128 bit của chúng. CBUUID cũng có thể được khởi tạo với giá trị 128 bit nếu bạn không sử dụng các giá trị nổi tiếng (Tức là bạn đã tạo các dịch vụ và đặc điểm riêng)

Ví dụ: khởi tạo CBUUID với CBUUID(string:"180F") là ok (đây là pin) dịch vụ) nhưng NSUUID(string:"180F") sẽ không thành công vì nó cần tất cả 128 bit.

Khi làm việc với Core Bluetooth, bạn sẽ sử dụng CBUUID cho các dịch vụ và đặc điểm. Một NSUUID được sử dụng cho định danh ngoại vi vì đó chỉ là một MAC không có giá trị đặc biệt được xác định.

+0

Được rồi, vậy nếu tôi sử dụng cấu trúc dịch vụ và đặc điểm tùy chỉnh với UUID được tạo miễn phí, tôi nên sử dụng số NSUUID hoặc? vì trong trường hợp này, tôi không phải chuyển đổi UUID 16 bit ngắn thành UUID 128 bit. Nhưng tôi có phải quan tâm đến kiểu đầu vào dự kiến ​​của phương pháp quét trong trường hợp này không? Cảm ơn! – godlyblade

+0

Không, bạn nên sử dụng CBUUID. Bộ khởi tạo CBUUID sẽ xử lý giá trị 16 bit hoặc 128 bit. Bạn sẽ thấy rằng tất cả các chức năng chính của Bluetooth giờ đây đều sử dụng CBUUID. Có một trình khởi tạo cho CBUUID có một NSUUID nếu bạn có một. – Paulw11

+0

Thật tuyệt, cảm ơn! – godlyblade

Các vấn đề liên quan