ios – 协议扩展,不符合协议

ios – 协议扩展,不符合协议,第1张

概述我正在创建一个名为MyFramework的框架,其中包含LoginProtocol. swift,它有一些默认行为 import UIKitpublic protocol LoginProtocol { func appBannerImage() -> UIImage? func appLogoImage() -> UIImage?}extension LoginPro 我正在创建一个名为MyFramework的框架,其中包含LoginProtocol. swift,它有一些默认行为

import UIKitpublic protocol LoginProtocol {    func appBannerImage() -> UIImage?    func applogoImage() -> UIImage?}extension LoginProtocol {    func appBannerImage() -> UIImage? {        return (UIImage(named: "login_new_top"))     }    func applogoImage() -> UIImage? {        return (UIImage(named: "applogo"))    }}

接下来,我将添加一个新目标来创建一个名为MyDemoApp的演示应用程序,该应用程序正在使用MyFramework:

import UIKitimport MyFrameworkclass LoginVIEwContainer: UIVIEwController,LoginProtocol {        // I think I am fine with defaults method. But actually getting an error}

目前,我从编译器收到错误,如

type 'LoginVIEwContainer does not conform protocol 'LoginProtocol'

我不知道为什么我收到此消息,因为通过协议扩展,该类不需要符合协议

如果我能就这个问题得到一些建议,那就太好了.谢谢

PS:this是这些代码的链接.随便看看它.

解决方法 问题是您的扩展程序不是公共的 – 因此它在其定义的模块之外是不可见的,在本例中是MyFramework.

这意味着您的视图控制器只知道LoginProtocol定义(因为这是公共的),而不是默认实现.因此,编译器抱怨没有实现协议方法.

因此,解决方案是简单地将扩展公开:

public extension LoginProtocol {    func appBannerImage() -> UIImage? {        return (UIImage(named: "login_new_top"))     }    func applogoImage() -> UIImage? {        return (UIImage(named: "applogo"))    }}
总结

以上是内存溢出为你收集整理的ios – 协议扩展,不符合协议全部内容,希望文章能够帮你解决ios – 协议扩展,不符合协议所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075281.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存