ios - 使用 CocoaPods 没有这样的模块 'TTTabBarItem'

标签 ios swift cocoapods

我正在尝试扩展TTTabBar。当我的项目中有该库时,它工作得很好,但我想将其保留为一个 Pod(用于维护和版本管理)并根据需要扩展它。

从那时起,我就无法无错误地导入它。其他类似的答案(而且有很多!)没有帮助。

我的 Podfile:

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: TTTabBarItem import fails

我尝试了很多事情:

  • 清理/重建
  • 删除 Pod 并重新安装
  • 关闭/重新打开 XCode
  • 将框架添加到我的build设置
  • 前面步骤的组合

这是我添加 TTTabBar 的二进制文件链接: Link Binary with Libraries

很高兴知道它适用于 RealmSwiftimport TTTabBar 可以正常工作,但它不知道 TTTabBarItem 是什么TabBarItem 类:TTTabBarItem {}import tttabbar works, tttabbaritem is unknown

请注意,我两天前就开始了 iOS 开发,因此可能有一些明显的东西我遗漏了。

最佳答案

您面临这些问题是因为您不应该导入TTTabBarItem(您打算使用的类),而是导入整个库,在您的情况下import TTTabBar。我认为链接器足够聪明,只包含您在代码中使用的引用文件。

所以,再次使用import TTTabBar来代替。

更重要的是,该库的开发者犯了一个根本性的错误:

如果您查看源文件,您可以看到:

class TTTabBar: UIViewController { // rest of the code... }

他没有指定 public 访问修饰符,这基本上意味着您无法在库的内部目标之外访问它(您基本上只能在源项目/目标本身内引用它,即对于任何集成该库的开发人员来说都是无用的)。

不过你有一个选择:

由于库的大小,您可以继续将文件复制到您的项目中(如果您只是在后续 pod install 中使用 pod,那么您添加的任何修改都将始终被覆盖调用,因此您修改库的最初意图似乎也不是一个可行的选择)。

关于ios - 使用 CocoaPods 没有这样的模块 'TTTabBarItem',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35890052/

相关文章:

iphone - UIbarbuttonItem 图像看起来拉伸(stretch)/变厚

swift - 如何创建通用的 UITableviewCell,它可以通过委托(delegate)或其他方式将通用数据类型传递给主 UIViewController?

ios - 在 swift 中,当我的类有同名的子类时如何引用最顶层的类

ios - 无法完全安装 pod 'FBSDKLoginKit' 它就停在那里

ios - 通过框架之间的扩展实现 Swift 协议(protocol)一致性

ios - 即使不支持横向,也以横向模式显示 UIImage

ios - 分配自定义字体时出现异常

ios - 显示 MDTimePicker 时键盘未关闭

ios - 当客户端连接突然丢失时,Swift XMPP 消息会丢失

ios - _NSInlineData base64EncodedString - 发送到实例的无法识别的选择器