Bir temsilci desen protokolü için birden fazla hedefi bildirmek üzere bir dağıtım programı uygulamaya çalışıyorum.Bir Swift 2 delege dağıtıcısı için kopyalama yöntemi adlarından kaçınmak istiyorsanız
Her desen adı için kopyala yapıştırmadan, aşağıdaki deseni yapmanın daha iyi bir yolu nedir?
Başvuru içinpublic class AirBatteryClientDelegateDispatcher: AirBatteryClientDelegate {
private var targets = [AirBatteryClientDelegate]()
public func clientDidStartScan(client: AirBatteryClient) {
for target in targets {
target.clientDidStartScan?(client)
}
}
. . .
}
, ben bir düzine ile aşağıdaki protokol kullanıyorum daha benzer yöntemler:
@objc public protocol AirBatteryClientDelegate: class {
optional func clientDidStartScan(client: AirBatteryClient)
optional func clientDidStopScan(client: AirBatteryClient)
optional func clientDidUpdateState(client: AirBatteryClient)
. . .
}
Neden bunun yerine bildirim tabanlı bir desen kullanmıyorsunuz? Bu şekilde tüm bu yöntemleri delegelere iletmek zorunda değilsiniz ... –
Bildirimlerin kısa bir gecikme yaşadığını düşündüm. Kullanıcı arayüzü güncellemeleri için geri bildirimleri kullanıyorum. –
Gözün UI güncellemeleri aracılığıyla yine de kayıt yapamayacağı mikro saniye beklemediğiniz sürece bunun bir sorun olmasını beklemiyorum. Yine de UI güncellemeleri için ana iş parçacığına göndermeniz gerekecek (bu da orada bir gecikme demektir). –