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

时间:2016-03-09 11:16:10

标签: ios swift cocoapods

我试图扩展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 。当我在我的项目中使用lib时,它工作正常但我想将其保存为pod(用于维护和版本管理)并根据需要进行扩展。

从那时起,我无法正确导入它。其他类似的答案(并且有很多!)没有帮助。

我的Podfile:

TTTabBar

以下是我尝试导入它的代码,您还可以看到我打开了工作区并安装了RealmSwiftTTTabBarItem import fails

我尝试了很多东西:

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

以下是我添加TTTabBar的Binaries链接: Link Binary with Libraries

很高兴知道它适用于import TTTabBarTTTabBarItem,但它不知道class TabBarItem: TTTabBarItem {}中的{{1}}是什么。 import tttabbar works, tttabbaritem is unknown

请注意,我在2天前启动了iOS开发,因此可能会出现一些我不知道的事情。

2 个答案:

答案 0 :(得分:0)

问题实际上在TTTabBar模块本身。 TTTabBar和TTTabBarItem类及其方法未声明为public。所以你没有在你的应用程序中获得这些类。该模块的创建者应该已经创建了这些类和函数public

如果您的TTTabBar *文件在类及其某些方法中包含公共访问说明符并构建项目,解决方案是更改本地副本。

E.g。 public class TTTabBar: UIViewControllerpublic class TTTabBarItem: UIButton

您还必须将其他3种方法标记为公开。

  1. 在TTTabBar文件viewDidLoad
  2. 在TTTabBarItem drawRectinit?

答案 1 :(得分:0)

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

再次使用import TTTabBar代替。

更重要的是,图书馆的开发人员犯了一个根本性的错误:

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

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

他没有指定public访问修饰符,这基本上意味着你不能在库的内部目标之外访问它(你基本上只能在源项目/目标本身中引用它,这对任何一个都没用。开发人员整合这个库)。

你有一个选择:

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