10

Tôi thiết lập một vài kết nối BLE trong bộ điều khiển khung nhìn của tôi, SViewController và tôi cần lưu trữ các thiết bị ngoại vi để sử dụng trong các bộ điều khiển khung nhìn khác. Tôi đã thử tạo một đối tượng NSUserDefault và lưu trữ các thiết bị ngoại vi trong đó, nhưng tôi nhận được lỗi "Attempt to insert non-property value" và nó không bao giờ được chèn vào. Sau đó tôi đã thử gói nó lên trong một đối tượng NSData và lưu trữ nó trong NSUserDefaults, nhưng có lỗi "-[CBConcretePeripheral encodeWithCoder:]: unrecognized selector sent" và ứng dụng bị lỗi. Vì vậy, điều đó chắc chắn không hoạt động. Tôi cũng đã thử làm cho ba biến CBPeripheral toàn cục, nhưng tôi đã gặp phải rất nhiều vấn đề với điều đó. (Tôi vẫn còn rất mới để lập trình). Sau đó tôi đã xem xét việc lưu trữ chúng bằng cách nào đó, nhưng đã đọc ở đây rằng nó sẽ không hoạt động và không lãng phí thời gian.Làm thế nào để lưu trữ một CBPeripheral để sử dụng trong các khung nhìn khác

Có ai biết cách lưu trữ đối tượng CBPeripheral để tôi có thể truy cập nó và khởi tạo nó trong bộ điều khiển chế độ xem khác không?

+0

Bạn đã thử phương pháp đơn lẻ chưa? Bạn có thể giữ kết nối bluetooth còn sống giữa các chế độ xem hoặc bạn có phải kết nối lại khi bạn muốn sử dụng không? –

Trả lời

12

Tạo một singleton thực hiện tất cả các phương pháp CBCentralManagerDelegate của bạn. Sau đó, chỉ cần tạo các phương thức ủy nhiệm của riêng bạn cho singleton đó để thông báo cho viewControllers của bạn. Bằng cách đó bạn có thể dễ dàng sử dụng nó trong bất kỳ lớp học nào. Đối với lưu trữ CBPeripherals, bạn chỉ có thể đặt chúng bên trong của một NSMutableArray chứa bên trong singleton của bạn.

Kiểm tra liên kết này về cách Create a Singleton Instance

(Oh và cho nơi bạn nói "Khởi tạo nó trong bộ điều khiển xem khác" ..That nên không bao giờ được như vậy. Nhưng có lẽ bạn chỉ có nghĩa là để lưu trữ CFUUIDRef? Nếu bạn làm điều đó, bạn chỉ có thể gọi retrievePeripherals:(NSArray*) và lấy vật thể ngoại vi ở bất cứ nơi nào bạn muốn. Nếu đó là ý của bạn ...)

+0

Vô cùng hữu ích, cảm ơn bạn rất nhiều! – John

+0

Không có vấn đề gì –