P
numaralı iletişim kuralıC
sınıfının bir değişkenini gerektirir., Swift'i sınıflar protokol varyasyonlarını zorunlu olarak uyguluyor mu?
Sınıf X
protokolü P
C1
C
uzanan sınıf C1
değişken v
ilan uygular. bu hata ile
import Foundation
class C { }
class C1: C { }
protocol P {
var v: C { get set }
}
class X: P {
var v: C1
init(withV v: C1) {
self.v = v
}
}
Xcode şikayetleri::
Type 'X' does not conform to protocol 'P'
Protocol requires property 'v' with type 'C'
Candidate has non-matching type 'C1'
Neden derleyici tam protokolde ilan aynı tür maç için beni zorluyor
İşte kod?
Düzenleme:
Obj C aynı uygulama hataları veya tam olarak uyacak şekilde zorluyor değildir uyarılar
@interface C: NSObject
@end
@implementation C
@end
@interface C1: C
@end
@implementation C1
@end
@protocol P <NSObject>
@property (nonatomic, strong) C *v;
@end
@interface X: NSObject <P>
@property (nonatomic, strong) C1 *v;
@end
@implementation X
@end
Obj-C hiç şikayet, ama sadece ben değil protokolde kümenin, çalışma zamanında herkesin "v" yi bir "C" sınıfına ayarlayabileceği ve "X" in "C1" olduğu gibi "C" ye erişemediğini ifade eder. Cevap için teşekkürler. – Scakko