Ios 没有此类模块';TTTabBarItem';使用椰子荚
我正在尝试扩展Ios 没有此类模块';TTTabBarItem';使用椰子荚,ios,swift,cocoapods,Ios,Swift,Cocoapods,我正在尝试扩展TTTabBar。当我在我的项目中使用lib时,它工作得很好,但我想将它作为一个pod(用于维护和版本管理)保存,并根据需要进行扩展 从那时起,我无法导入它而不出错。其他类似的答案(还有很多!)没有帮助 我的播客文件: source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' use_frameworks! target 'Octoly' do pod 'RealmSwift', '~>
TTTabBar
。当我在我的项目中使用lib时,它工作得很好,但我想将它作为一个pod(用于维护和版本管理)保存,并根据需要进行扩展
从那时起,我无法导入它而不出错。其他类似的答案(还有很多!)没有帮助
我的播客文件:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
target 'Octoly' do
pod 'RealmSwift', '~> 0.98'
pod 'Mixpanel', '~> 2.9'
pod 'SwiftHTTP', '~> 1.0'
pod 'TTTabBar', '~> 1.1'
end
这是我尝试导入的代码,您还可以看到我打开了工作区并安装了TTTabBar
:
我试过很多东西:
- 清理/重建
- 卸下吊舱并重新安装
- 关闭/重新打开XCode
- 将框架添加到我的建筑设置中
- 前面步骤的组合
RealmSwift
和import TTTabBar
中运行良好,但是它不知道TTTabBarItem
类TabBarItem:TTTabBarItem{}中有什么。
请注意,我在两天前就开始了iOS开发,因此可能有一些明显的东西我遗漏了。问题实际上在于TTTabBar模块本身。TTTabBar和TTTabBarItem类及其方法未声明为
public
。所以你的应用程序中没有这些类。该模块的创建者应该将这些类和函数公开
解决方案是更改TTTabBar*文件的本地副本,以便在类及其某些方法中包含公共访问说明符,并构建项目
例如。
公共类TTTabBar:UIViewController
和公共类TTTabBarItem:UIButton
您还必须将其他3个方法标记为public
viewDidLoad
drawRect
和init?
您之所以面临这些问题,是因为您不应该导入
TTTabBarItem
(您打算使用的类),而应该导入整个库,在您的例子中是import TTTabBar
。我认为链接器足够聪明,只包含代码中使用的引用文件
因此,再次使用import TTTabBar
更重要的是,该库的开发人员犯了一个根本性错误:
如果查看源文件,可以看到以下内容:
class TTTabBar: UIViewController { // rest of the code... }
他指定了nopublic
access修饰符,这基本上意味着您不能在库的内部目标之外访问它(您基本上只能在源项目/目标本身中引用它,这对集成此库的任何开发人员都是无用的)
不过您有一个选择:
由于库的大小,您可以继续将文件复制到您的项目中(如果您在后续的
pod安装
调用中仅使用pod,您将添加的任何修改都将被覆盖,因此您最初修改库的意图似乎也不可行).这可能会对你有所帮助-谢谢,但不是。我已经读了好几遍了。我想了想,但告诉自己,图书馆的作者比我知道得多。谢谢你的帮助。我会联系开发商:)