我试图扩展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
以下是我尝试导入它的代码,您还可以看到我打开了工作区并安装了RealmSwift
:
我尝试了很多东西:
很高兴知道它适用于import TTTabBar
和TTTabBarItem
,但它不知道class TabBarItem: TTTabBarItem {}
中的{{1}}是什么。
请注意,我在2天前启动了iOS开发,因此可能会出现一些我不知道的事情。
答案 0 :(得分:0)
问题实际上在TTTabBar模块本身。 TTTabBar和TTTabBarItem类及其方法未声明为public
。所以你没有在你的应用程序中获得这些类。该模块的创建者应该已经创建了这些类和函数public
如果您的TTTabBar *文件在类及其某些方法中包含公共访问说明符并构建项目,解决方案是更改本地副本。
E.g。
public class TTTabBar: UIViewController
和public class TTTabBarItem: UIButton
您还必须将其他3种方法标记为公开。
viewDidLoad
drawRect
和init?
答案 1 :(得分:0)
您正面临这些问题,因为您不应该导入TTTabBarItem
(您打算使用的类),而是整个库,在您的情况下import TTTabBar
。我认为链接器足够聪明,只包含您在代码中使用的引用文件。
再次使用import TTTabBar
代替。
更重要的是,图书馆的开发人员犯了一个根本性的错误:
如果您查看源文件,可以看到:
class TTTabBar: UIViewController { // rest of the code... }
他没有指定public
访问修饰符,这基本上意味着你不能在库的内部目标之外访问它(你基本上只能在源项目/目标本身中引用它,这对任何一个都没用。开发人员整合这个库)。
你有一个选择:
由于库的大小,您可以继续将文件复制到项目中(如果您在后续的pod install
电话中使用了pod,则您将添加的任何修改都将被覆盖,因此您的修改库的初始意图似乎也不是一个可行的选择。)