我看到XIB出现此错误。但是其他所有内容都可以编译,并且此错误似乎没有造成任何危害。这是我需要担心的吗?这是什么问题,我将如何解决?
更新:我已将cocoapods更新到最新版本(0.36.3),尽管该问题已通过一些编译解决,但该错误已返回,并且我现在看到了另一个错误:
Answers:
这是CocoaPods中的一个已知问题。它已在版本0.36.1中修复。只需更新您的CocoaPods,然后将特定的代码行添加到您的Pod文件即可: use_frameworks!后平台:ios,“ 7.0”
因此,您的文件将如下所示:
platform :ios, '7.0'
use_frameworks!
/// here will be dependencies etc. ///
更新:
彻底解决问题的完整步骤列表:
pod update
;经过一些研究和挖掘,我可以确认没有办法解决这个问题。
这是Xcode的错误。
就这样。我们必须等待更新。
刚刚重新启动的Xcode的现在。
这为我工作:
2016年是xCode 7.3.1:出现此错误。(使用可可豆荚1.0,但是没关系)
原因: IB中使用了特殊的UILabel子类。按门铃?
优雅的解决方案:
1:子类TTTAttributedLabel或FXLabel或您拥有的任何子类。在IB中使用它。
2:将这些行添加到子类.h文件中:
#ifndef IB_DESIGNABLE
#define IB_DESIGNABLE
#endif
@class LabelFromPod;
IB_DESIGNABLE @interface YourLabel : LabelFromPod {
...
}
3:那么我认为您必须清除项目,退出xCode,重新构建(通常的xCode应急协议),问题将消失。
UPDATE 2017 xCode 8.2.1:一切都变得越来越糟糕:(空白的VC问题:IB甚至没有为具有这些IB_DESIGNABLE的视图控制器加载UI元素。我很无知:)
我在使用TTTAttributedLabel时遇到了同样的问题,并按照安德烈的回答尝试对其进行修复。构建成功,但是之后似乎无法加载其他Pod模块(在我的情况下为TSMessage,SVProgressHUD)的捆绑文件。Cocoapods博客文章中也对此进行了说明,并且我不想将包资源移至mainBundle(并且我还没有验证是否可行)。
因此,我选择从Podfile中删除TTTAttributedLabel,而直接包含源代码即可消除该错误。这对我有用,我希望它也是这个问题的另一个答案。
可能来晚了,但是当我遇到这个问题时,添加这些代码进行初始化对我有用
required override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
问题可能是您使用了框架或自定义UILabel类。例如MarqueLabel或TTTAttributed标签。#use_frameworks
在Pod文件中取消注释。运行pod update
。清理并重建您的项目。这样可以解决您的问题。
我在使用时曾经有一个类似的错误,Cocoapods
但无法use_frameworks!
。我最终通过派生一个框架,使用IBDesignable
和IBInspectable
和移除这些关键字。所有定制均通过编程方式完成:
class CardFloatingLabelTextField: SkyFloatingLabelTextField {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.errorMessage = nil
self.titleFont = UIFont.systemFont(ofSize: 11)
self.titleFormatter = { (text: String) in return text }
self.titleColor = UIColor.channelsColorGrayFootnoteAndCaptions()
self.selectedTitleColor = UIColor.channelsColorGrayFootnoteAndCaptions()
self.lineColor = UIColor.channelsColorGrayContentAndLines()
self.selectedLineColor = UIColor.channelsColorDarkBlue()
self.lineHeight = 1
self.selectedLineHeight = 1
}
}
它可以正常工作,并且不会再在Interface builder中创建错误。但是,很遗憾,我必须执行此解决方法。