Ben Bluetooth Low Energy yoluyla çevre birimleri ile iletişim kurmak için elma CoreBluetooth çerçevesini kullanan Swift ile bir iOS app inşa ediyorum test eder. CBCentralManagerDelegate ve CBPeripheralDelegate protokolleri, bir CoreBluetooth API davranışını taklit etmek için çift CBCentralManager den sınıflandırma bir test sağlayan am uygulayan özel bir kontrolör test ünitesinin çaba. Denetleyicinin temsilci geri bildirimleri uygun zamanlarda çağrılır. alaycı Kakao nesneleri
Şimdiye kadar bu oldukça iyi çalışıyor. o CBPeripheralDelegate geri aramalar çağıran gelince, bir CBPeripheral geçirilen gerekiyor. Genellikle, bileşen kendi alt sınıf sağlamak veya bir örneğini CBPeripheral alay sadece sahte olur.İşte yakalamak var: altta yatan Objective-C kütüphanesinde belirlenmiş başlatıcı CBPeripheral benim sahte CBCentralManager bir CBPeripheral başlatmasını ve bir argüman olarak geçen beni engelleyen kullanılamaz olarak işaretlenir test edilen CBPeripheralDelegate. (XCode beni bir derleyici hatası ile bırakır.)
Şimdiye kadar, sahte alt sınıfımda (ki bu, kullanılmayan atanmış init'i aramak zorunda olduğum için işe yaramıyor) özel bir başlatıcı sağlamayı denedim, başlatıcıyı (görünüşte izin verilmez) uzantısı ve kullanılamadığını umrumda değilmiş gibi Objective-C çalışma zamanı ile seçicisini (init) çağırarak. Son yaklaşım en umut verici görünüyor, ama gerçekten çalışmıyor ve yanlış tipte (test sınıfım) yönetilmeyen nesnelerle beni terk ediyor.
Kesinlikle burada bir barikat isabet ettik ve) (init rağmen CBPeripheral başlatmasını
farklı bir yaklaşım kullanılamaz olmak
üzerinde herhangi bir giriş için son derece mutluluk duyarız CBPeripheralDelegate
test birimi için