【发布时间】:2015-01-28 23:04:31
【问题描述】:
我看到 XIB 出现此错误。但是其他所有内容都可以编译,并且这个错误似乎没有造成任何伤害。这是我需要担心的事情吗?这里有什么问题,我将如何解决这个问题?
更新: 我已将 cocoapods 更新到最新版本 (0.36.3),虽然这解决了一些编译问题,但错误已经返回,我现在看到一个额外的错误:
【问题讨论】:
我看到 XIB 出现此错误。但是其他所有内容都可以编译,并且这个错误似乎没有造成任何伤害。这是我需要担心的事情吗?这里有什么问题,我将如何解决这个问题?
更新: 我已将 cocoapods 更新到最新版本 (0.36.3),虽然这解决了一些编译问题,但错误已经返回,我现在看到一个额外的错误:
【问题讨论】:
这是 CocoaPods 中的一个已知问题。 它已在 0.36.1 版本中修复。 只需更新您的 CocoaPods,然后将特定的代码行添加到您的 pod 文件中: use_frameworks! 在 platform :ios, '7.0'
之后所以您的文件将如下所示:
platform :ios, '7.0'
use_frameworks!
/// here will be dependencies etc. ///
更新:
一劳永逸地解决问题的完整步骤列表:
pod update;【讨论】:
经过一番研究和挖掘,我可以确认,没有办法解决这个问题。
这是 Xcode 的错误。
就是这样。我们必须等待更新。
现在只需重新启动 Xcode。
【讨论】:
这对我有用:
【讨论】:
2016 是一年,xCode 7.3.1: 我得到了这个错误。 (使用 cocoa pods 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 恐慌协议),问题就会消失。
2017 年更新 xCode 8.2.1:一切都变得更糟 :( 空白 VC 问题:IB 甚至没有为具有这些 IB_DESIGNABLEs 的视图控制器加载 UI 元素。我一无所知 :)
【讨论】:
我在使用 TTTAttributedLabel 时遇到了同样的问题,并按照 Andrey 的回答尝试修复它。构建成功,但之后似乎无法加载其他 pod 模块(在我的情况下为 TSMessage、SVProgressHUD)的捆绑文件。 Cocoapods blog post 中也说明了这一点,我不想将捆绑资源移动到 mainBundle(我还没有验证这是否有效。)
因此,我选择从 Podfile 中删除 TTTAttributedLabel 并直接包含源以消除该错误。这对我有用,我希望它也是这个问题的另一个答案。
【讨论】:
可能会迟到,但是当我遇到这个问题时,添加这些代码进行初始化对我有用
required override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
【讨论】:
我在故事板上使用 POD 的自定义视图时遇到了同样的问题。
执行以下操作为我解决了这个问题
use_frameworks!
pod update
【讨论】:
在Podfile最后添加这个脚本并再次执行pod install。
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings.delete('CODE_SIGNING_ALLOWED')
config.build_settings.delete('CODE_SIGNING_REQUIRED')
end
end
【讨论】:
在 Mac 中更新 cocoapods,使用以下命令部分为我解决了这个问题:
sudo gem install cocoapods
【讨论】:
问题可能是您使用了框架或自定义 UILabel 类。
像 MarqueLabel 或 TTTAttributed 标签。
在 pod 文件中取消注释 #use_frameworks。
运行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
}
}
它可以工作并且不再在界面生成器中创建错误。但是,很遗憾,我不得不这样做。
【讨论】:
删除您在 Podfile 中的内容并直接包含源以解决此问题。
它对我有用!
【讨论】:
当基类和子类都被称为@IBDesignable 类时,我遇到了这个问题。可以与第三方类和您的类检查是否被继承
【讨论】: