«swift-protocols» etiketlenmiş sorular

Swift diline özel protokoller

6
'Pure' Swift'te zayıf bir protokol başvurusunu nasıl yapabilirim (@objc olmadan)
weakreferanslar , saf bir Swift uygulamasında istemediğim bir a protocololarak belirtilmedikçe Swift'te çalışmıyor gibi görünüyor @objc. Bu kod bir derleme hatası verir ( weaksınıf dışı türe uygulanamaz MyClassDelegate): class MyClass { weak var delegate: MyClassDelegate? } protocol MyClassDelegate { } Protokol ile önek gerekir @objc, sonra çalışır. Soru: Bir başarmanın …


7
Protokollerin seri türleri ve fonksiyon parametreleri olarak kullanımı
Belirli bir protokole uygun nesneleri depolayabilen bir sınıf oluşturmak istiyorum. Nesneler yazılı bir dizide saklanmalıdır. Swift dokümantasyon protokollerine göre tip olarak kullanılabilir: Bir tür olduğundan, aşağıdakiler de dahil olmak üzere diğer türlere izin verilen birçok yerde bir protokol kullanabilirsiniz: Bir işlev, yöntem veya başlatıcıda parametre türü veya dönüş türü olarak …

3
Protokol kendine uymuyor mu?
Bu Swift kodu neden derlenmiyor? protocol P { } struct S: P { } let arr:[P] = [ S() ] extension Array where Element : P { func test<T>() -> [T] { return [] } } let result : [S] = arr.test() Derleyici şunu söyler: "Tür Pprotokole uymuyor P" (veya …

2
“Protokol… Kendine veya ilişkili tür gereksinimlerine sahip olduğu için yalnızca genel bir kısıtlama olarak kullanılabilir” ne anlama geliyor?
Swift'de özel bir protokole dayalı bir Sözlük (aslında bir HashSet ) oluşturmaya çalışıyorum , ancak bu bana başlıkta hata veriyor: 'MyProtocol' protokolü, Self veya ilişkili tür gereksinimlerine sahip olduğu için yalnızca genel bir kısıtlama olarak kullanılabilir ve ben bununla ilgili ne yazı yazamıyorum. protocol Observing: Hashable { } var observers …

3
Non - '@ objc' yöntemi, '@objc' protokolünün isteğe bağlı gereksinimini karşılamıyor
Genel Bakış: Objective-C isteğe bağlı işlevlerinden birinin varsayılan uygulamasını sağlayan bir P1 protokolüne sahibim. İsteğe bağlı işlevin varsayılan uygulamasını sağladığımda bir uyarı alıyorum Derleyici Uyarısı: Non-'@objc' method 'presentationController(_:viewControllerForAdaptivePresentationStyle:)' does not satisfy optional requirement of '@objc' protocol 'UIAdaptivePresentationControllerDelegate' Versiyon: Hızlı: 3 Xcode: 8 (genel sürüm) Yapılan denemeler: Eklemeye çalıştı @objcama yardımcı …

5
Protokol, Self veya relatedType gereksinimlerine sahip olduğu için yalnızca genel bir kısıtlama olarak kullanılabilir
Bir RequestType protokolüm var ve aşağıdaki gibi ilişkiliType Modeline sahip. public protocol RequestType: class { associatedtype Model var path: String { get set } } public extension RequestType { public func executeRequest(completionHandler: Result<Model, NSError> -> Void) { request.response(rootKeyPath: rootKeyPath) { [weak self] (response: Response<Model, NSError>) -> Void in completionHandler(response.result) guard …

5
Swift'de, bir veya daha fazla protokole uyan belirli tipte bir değişkeni nasıl tanımlayabilirim?
Swift'de bir değişkenin türünü aşağıdaki gibi bildirerek açıkça belirleyebilirim: var object: TYPE_NAME Bunu bir adım daha ileri götürmek ve birden çok protokole uyan bir değişken bildirmek istiyorsak, protocolbildirimi kullanabiliriz : var object: protocol<ProtocolOne,ProtocolTwo>//etc Bir veya daha fazla protokole uyan ve aynı zamanda belirli bir temel sınıf türünde olan bir nesneyi …

15
Bir numaralandırma, Swift'deki bir protokole nasıl uydurulur?
Swift dokümantasyonu, sınıfların , yapıların ve numaralandırmaların tümünün protokollere uyabileceğini ve hepsinin uyumlu olduğu bir noktaya gelebileceğimi söylüyor . Ancak numaralandırmanın sınıf ve yapı örnekleri gibi davranmasını sağlayamıyorum : protocol ExampleProtocol { var simpleDescription: String { get set } mutating func adjust() } class SimpleClass: ExampleProtocol { var simpleDescription: String …


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.