gpt4 book ai didi

swift - 我可以创建一个符合内部协议(protocol)的 iOS 框架,并在我的项目中定义相同的协议(protocol)吗?

转载 作者:行者123 更新时间:2023-11-30 10:30:57 25 4
gpt4 key购买 nike

我正在创建一个符合特定协议(protocol)的框架

MyTestFramework.framework

public protocol SBFProtocol {

static var sharedInstance: SBFProtocol { get }
func GetVersion() -> String
func GetBuildNumber() -> String
}
public final class FrameworkBase : SBFProtocol {

public static var sharedInstance: SBFProtocol = FrameworkBase()


public func GetVersion() -> String {
return "1.0"
}

public func GetBuildNumber() -> String {
return "0"
}
}

然后我在我的类中重新定义相同的协议(protocol)并导入框架。

我的项目

import MyTestFramework

public protocol SBFProtocol {

static var sharedInstance: SBFProtocol { get }
func GetVersion() -> String
func GetBuildNumber() -> String
}

var testInstance: SBFProtocol = MyTestFramework.FrameworkBase.sharedInstance

有没有办法使用我自己的协议(protocol)定义访问该框架对象?

我不断收到错误:

类型“MyTestFramework.SBFProtocol”的值不符合指定类型“MyProject.SBFProtocol”

有什么办法可以做到这一点吗?原因是我想将该框架实例传递给另一个框架(称之为 annonymousFramework),并且我希望它只知道 SBFProtocol 而不是整个 MyTestFramework

这有可能吗?

最佳答案

最终我是这样解决的:

我已将协议(protocol)包装在它自己的框架项目中(仅包含一个 protocol.swift 文件,其中包含所有定义)

然后我将该 protocol.framework 包含在所有使用它的项目/框架中。

这样编译器会将其识别为相同的协议(protocol),我从中获得的另一个好处是我可以在我的协议(protocol)/框架混合中强制执行最低 iOS 版本、有效的构建架构和更多项目设置。

关于swift - 我可以创建一个符合内部协议(protocol)的 iOS 框架,并在我的项目中定义相同的协议(protocol)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59253656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com