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