swift-protocols

    1熱度

    1回答

    我正在編寫一些代碼片段,以瞭解關聯類型如何工作,但我遇到了一個錯誤,我不知道如何解釋。我寫的代碼發佈在下面供參考。 // A basic protocol protocol Doable { func doSomething() -> Bool } // An extension that adds a method to arrays containing Doables e

    1熱度

    2回答

    我正在嘗試爲我的應用程序創建數據模型。這裏是場景: 我的應用程序有客戶模型,其中包含客戶的信息,也包含他/她的支付來源。該API給我兩種支付來源:卡和銀行帳戶他們有完全不同的領域。 所以,這裏是我的問題,我想要具有PaymentSource的抽象類型,然後在每個PaymentSource中都有一個函數來將對象轉換爲它的類型。一些我是如何刪除類型的。 我需要把我的抽象類型放在一個盒子裏,並用它作爲具

    2熱度

    1回答

    我在Swift 3.1中遇到了這個奇怪的編譯器限制,在操場上進行了測試。任何解決方案 似乎是一個編譯器錯誤,建議? 謝謝:)

    1熱度

    2回答

    編輯:解決了,請參閱我的解決方案。我仍然很好奇它爲什麼有效,也許你的解決方案可以解釋這一點? 〜 我使用NotificationCenter發佈通知傳遞一個對象。 我的目標是如果它堅持某個,可選擇拆開notification.object。 問題是在測試中,解包被證明不成功,我不知道爲什麼。 的一系列對象(有時是enum,有時struct)誰堅持NotificationsPipelineProto

    1熱度

    3回答

    我想要一種符合我自定義協議的UIView類型。我嘗試做這樣的,但Xcode中說,這是不正確的聲明: typealias ViewThatConformsToProtocol = UIView: MyCustomProtocol 這並不工作過: typealias ViewThatConformsToProtocol = UIView, MyCustomProtocol 但我不希望使用的子類

    0熱度

    1回答

    我有一個登錄視圖控制器,由各種其他視圖控制器調用,需要檢查登錄狀態。他們在viewWillAppear()函數中執行此操作。登錄視圖控制器有一個帶有closeView()函數的導航欄,可在按下時彈出它。 在這個函數中,我調用委託函數來關閉呈現視圖控制器,但是當控制器出現時,它會再次調用檢查認證函數。我的委託函數關閉它永遠不會被調用。有什麼辦法可以做到這一點?清楚的是,如果用戶通過按下登錄控制器上的

    3熱度

    1回答

    我有一束從iTunesConnect崩潰日誌的我的IOS迅速應用程式表示該錯誤消息的堆棧跟蹤的頂部: 協議證人Strideable.distance(到:A) - > A.Stride在一致性的Int64 + 124 這來自我的代碼無害線,如下所示: if (var1 - var2 > MyClass.THRESHOLD) { // Do something } var1和var2

    0熱度

    1回答

    我想實現輸入/輸出過渡動畫彈出這個混帳回購發現:https://github.com/freedom27/PopInAndOutCollectionViewTransition 的代碼是爲一個UICollecitonView,但是,我已經具有UiCollectionView一個UIViewController嵌入式在它之內。由於這一點,我不斷收到我的協議錯誤: protocol Collectio

    1熱度

    1回答

    比方說,我們有一個協議定義爲: protocol PAT { associatedtype Element } ,我也有一個枚舉(典型的結果)定義爲: enum Result<Value> { case success(Value) case error(Error) } 現在我想添加當Element是Result<Value>但是編譯器不能確定Value

    3熱度

    3回答

    我試圖創建一個UIViewController擴展,我可以使用它來初始化新的實例。對於我的項目中的每個視圖控制器,我都有一個相應的故事板。 即 EditSomethingViewController.swift EditSomethingViewController.storyboard 這是我到目前爲止有: extension UIViewController { static