'da bir uzantı protokolü kullanarak Obj-C sınıfındaki var olan varlık nasıl ortaya çıkarılır? Swift 1.1'de, derleme gibi bir kodumuz vardı ve mevcut Objective-C özelliklerini bir uzantı tarafından eklenen bir protokol aracılığıyla açığa vurduğumuz yerde çalıştırabiliyorduk. Ayrıca, mülkiyetin uzantı tarafından ele alındığı birkaç yerimiz vardı. Swift
@objc protocol Enableable: class {
var enabled: Bool { get set }
}
let DisabledAlpha: CGFloat = 0.5
let EnabledAlpha: CGFloat = 1.0
extension UIButton: Enableable {}
extension UIImageView: Enableable {
var enabled: Bool {
get {
return alpha > DisabledAlpha
}
set(enabled) {
alpha = enabled ? EnabledAlpha : DisabledAlpha
}
}
}
, yanlışlıkla
Type 'UIButton' does not conform to the protocol 'Enableable'
aşağıdaki olsun XCode 6.3 ve Swift 1.2 kullanarak bu kodu derlemek çalışırken. UIImageView uzantısı iyi derlenmiş gibi görünüyor.
Bu tür varolan özellikleri Objective-C türünden göstermenin bir yolu var mı, yoksa farklı bir isimle bir proxy oluşturma özelliğini mi uygulamak zorundayız?
Yanıt için teşekkürler. İmzadan kaynaklanıp kaynaklanmadığını merak ediyordum ama bu konuda ne yapılacağından emin değildim. Hiç görmedik '@ objc protokolü Etkinleştirilebilir: class { var etkin: Bool {@objc (isEnabled) ayarlandı} } ' –