HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – Swift静态库大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试创建一个在我公司的iOS应用程序之间共享的实用程序项目.我在之前的工作中完成了这项工作,但这种情况早于 Swift.我显然希望将所有实现保留在swift中,而不是Obj-C.

我尝试了使用this guide的cocoapod路由,但是在我甚至可以开始在主项目中使用我的实用程序代码之前存在构建问题.

我现在正在尝试使用“可可触摸静态库”,其语言为Swift,但仍然没有运气.我将整个.xcodeproj文件导入我的工作区.现在,我只有一个.swift文件,以及由XCode生成的头文件.
我的项目叫做IosUtilsTest.

特别是我的test util文件

extension UIBarButtonItem {
  class func flexible() -> UIBarButtonItem {
    return UIBarButtonItem(barButtonSystemItem: .FlexibleSpace,target: nil,action: nil)
  }
}

在我的应用程序中:

import IosUtilsTest
....
toolbar.items = [UIBarButtonItem.flexible(),centeredButton,UIBarButtonItem.flexible()]
....

我得到一个灵活不存在的编译器错误.

我试包括< IosUtilsTest / IosUtilsTest-swift.h>和< IosUtilsTest / IosUtilsTest.h>在我的桥头.

基本上它似乎扩展没有包含在构建中. FWIW – 我记得有一个类别需要一个特殊的构建标志的问题,所以我尝试了一个我试图实例化的类,这是相同的基本错误.

解决方法

我们有一个包含许多swift框架模块的项目,这些模块都被组合到一个应用程序中,所以我应该能够提供一些帮助.

首先,您要创建一个Cocoa Touch Framework作为项目类型.

一个让我感到困惑的是,框架中的所有内容都必须公开,因为它认是内部的.好吧,至少要向客户端公开API的各个部分.所以使用:

public extension UIBarButtonItem {
  class func flexible() -> UIBarButtonItem {
     return UIBarButtonItem(barButtonSystemItem: .FlexibleSpace,action: nil)
  }
}

您不应该再这样做了,只需在.swift文件中导入您的模块,并在包含库的链接二进制文件中包含该框架.

我们也试过cocoapods并花了很多时间在它上面无济于事.很多构建错误,所以我们放弃并使用了Git子模块.你是对的,它不如cocoapod设置好 – 但它对我们来说很好,只是稍微增加一点.如果您愿意,可以将子模块标记为.gitmodules中的“自动获取”.

如果让它起作用,要小心可可豆荚的一件事是,暂时,你的所有应用必须使用相@R_478_11197@的Xcode构建.因此,如果您有一个使用旧版Xcode构建的模块然后放入可可pod,则需要确保在更新Xcode时重建它.这是由于与构建一起打包的swift运行时 – 请参阅Apples Swift博客了解更多详细信息.

大佬总结

以上是大佬教程为你收集整理的ios – Swift静态库全部内容,希望文章能够帮你解决ios – Swift静态库所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。