swift-protocols

    1熱度

    3回答

    我有一個協議實現如下。 protocol DatabaseInjectable { static func deriveObjectFromDBRow(row: [String]) -> Self? // Method - 1 static func collectAllObjectsForDatabaseAction(action: (Database) -> Void)

    0熱度

    3回答

    我想寫一個通用的方式來存儲數據到NSUserDefaults。我遇到的問題是,NSUserDefaults.standardUserDefaults().setValue(value, forKey: key)需要AnyObject?類型,如果我在協議中設置了類型,String,Bool等等不會映射到AnyObject?,因爲它們不是對象。無論如何,我怎樣才能使這個代碼工作,而不必爲每種類型實現擴

    0熱度

    2回答

    我試圖通過協議將功能添加到NSManagedObject。我添加了一個可以正常工作的默認實現,但只要我試圖用協議擴展我的子類,它就會告訴我它的一部分沒有實現,儘管我添加了默認實現。 任何人有我在做什麼想法錯誤? class Case: NSManagedObject { } protocol ObjectByIdFetchable { typealias T typea

    0熱度

    1回答

    內下面的代碼不編譯對我來說: import Foundation @objc public protocol MyProtocol { func protocolMethod(parameter: (String)) -> String func anotherProtocolMethod() -> Int } class MyClass: NSObject {

    3熱度

    3回答

    我明白協議的目的是什麼(使一個類型符合方法或/和屬性的集合列表),但我不明白具有所有可選方法的協議的目的是什麼。一個例子是UITextFieldDelegate。 如果在協議中所有的方法都是可選的,那麼爲什麼你會遵守協議,而不是隻從頭開始寫你的類中的方法?在這種情況下,我沒有看到符合協議的好處或目的。 那裏的可選方法就像可以實現的功能建議一樣嗎?

    2熱度

    1回答

    我試圖爲我的FieldIdentifiable協議創建一個擴展,只有在實現它的枚舉具有Int的RawValue時。唯一的問題是,return FieldIdItem(rawValue: newValue)線不斷顯示此錯誤: 'Self.FieldIdItem' cannot be constructed because it has no accessible initializers 這是一

    1熱度

    1回答

    我已經(在一個類)使用單線單初始化一個單嘗試,這裏有一些錯誤截圖: 你能幫助我瞭解這些錯誤,而且,如果單身協議甚至可能與否? 在此先感謝

    2熱度

    1回答

    我一直試圖使用這裏提出的協議和擴展在Swift中使抽象的超類行爲:Abstract classes in Swift Language 但我無法圖瞭解如何編寫使用靜態(類)變量的方法。例如,如果我想獲得一個抽象的形狀類的周長: protocol Shape { static var numSides: Int {get} var sideLength: Double {get}

    1熱度

    2回答

    我正在構建一個簡單的狀態引擎,我想要一個可以在其間移動的狀態集合。 我想這樣做的方式是枚舉可能的狀態,這些狀態也定義了表示該狀態的相應類,以便我可以動態構造狀態,如果我決定移動到該狀態州。 在下面的代碼中,我試過建立一個狀態對象的枚舉,它工作正常。我卡住的地方是,我怎樣才能訪問這個枚舉的值作爲我可以調用靜態構造方法的類型?在下面的代碼中,我得到的錯誤是,嘗試使用枚舉值調用moveToState並不

    0熱度

    1回答

    因此,我不必編寫大量代碼來複制我的錯誤 - 這可能是我應該在這種情況下使用泛型,但感覺就像我的解決方案應該工作。所以,下面的代碼塊給我一個「類型DCServiceClient不符合協議DMServiceClient」: protocol DMServiceEndpoint { } protocol DCServiceEndpoint: DMServiceEndpoint { } protoc