IB设计对象:无法更新自动布局状态:无法从路径(空)加载设计对象


76

我看到XIB出现此错误。但是其他所有内容都可以编译,并且此错误似乎没有造成任何危害。这是我需要担心的吗?这是什么问题,我将如何解决?

在此处输入图片说明

更新:我已将cocoapods更新到最新版本(0.36.3),尽管该问题已通过一些编译解决,但该错误已返回,并且我现在看到了另一个错误:

在此处输入图片说明


Answers:


77

这是CocoaPods中的一个已知问题。它已在版本0.36.1中修复。只需更新您的CocoaPods,然后将特定的代码行添加到您的Pod文件即可: use_frameworks!平台:ios,“ 7.0”

因此,您的文件将如下所示:

platform :ios, '7.0'

use_frameworks!

/// here will be dependencies etc. ///

更新:

彻底解决问题的完整步骤列表:

  • 关闭项目;
  • 打开终端应用程序;
  • 将CocoaPods本身更新为ver。0.36.1或更高版本;
  • 导航到终端中的项目文件夹;
  • 类型:pod update;
  • 在xCode中打开您的项目;
  • 清洁项目;
  • 再次构建项目。

2
实际上,仅更新cocoapods似乎对我有用。我很惊讶cocoapods给我一个不相关的XIB错误,但事实如此……
Oren 2015年

1
我收回之前说过的话。错误已返回。我做了你的建议进行进一步修订和错误仍然存在,我现在还可以得到约iOS8上的多个O型环警告
奥伦

2
尝试了多次。没有运气
Oren

1
你是对的。我在XIB中引用了TTTAttributedLabel。一旦我删除该错误就会消失。如果我放回去,错误会返回。我不确定现在该怎么办,但至少我知道原因。谢谢你的帮助!
奥伦

1
我刚刚添加了“ use_frameworks!” FSCalender一切正常。谢谢
Zulqarnain

32

经过一些研究和挖掘,我可以确认没有办法解决这个问题。

这是Xcode的错误。

就这样。我们必须等待更新。

刚刚重新启动的Xcode的现在。


8
确实如此。对我而言,它与可可豆荚无关,它与我自己的IB可设计产品无时无刻不在发生。尝试了一切...
benjamin.ludwig

2
这是什么版本的Xcode?我使用的是7.1.0,我仍然有它
CalZone 2015年

2
我正在使用Xcode 8.0,此问题仍未解决。
Statik

4
界面生成器非常缓慢且存在错误。几乎不能用于组件设计。是的,在Xcode 8.0中仍然相同。我认为在iOS开发中比android开发享受更多乐趣的最重要原因之一是IDE工具要好得多。苹果在他们的xcode工具中做得非常糟糕。它变得越来越糟!!!
Bagusflyer '16

3
我使用的是Xcode 8.2,并且在1.5年后还是一样。难以置信的。
CanPoyrazoğlu17年

17

这为我工作:

  1. 删除派生数据(首选项>位置)
  2. 重新启动Xcode
  3. 清洁项目(产品>清洁)

有用!看起来转储DerivedData缓存是一种方法,我什至不需要清理项目。
重音过载

是的,对我也是如此。
user1366265

4
问题肯定会再次出现。这是Xcode错误。
Bagusflyer

13

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元素。我很无知:)


1
错误仍然会随机发生。退出Xcode将解决此问题。
keithyip

识别确切问题的荣誉@Jaro虽然我添加了ifndef语句问题,但仍然存在。清除,退出,重建将有帮助。但仍然是xcode中的错误。苹果应该修复它。
Ashish Pisey '17

9

我在使用TTTAttributedLabel时遇到了同样的问题,并按照安德烈的回答尝试对其进行修复。构建成功,但是之后似乎无法加载其他Pod模块(在我的情况下为TSMessage,SVProgressHUD)的捆绑文件。Cocoapods博客文章中对此进行了说明,并且我不想将包资源移至mainBundle(并且我还没有验证是否可行)。

因此,我选择从Podfile中删除TTTAttributedLabel,而直接包含源代码即可消除该错误。这对我有用,我希望它也是这个问题的另一个答案。


对我来说只有有用的答案。
bisma 2015年

1
我也在使用TTTAttributedLabel。解决方法是暂时将类改回TTTAttributedLabels的UILabel,进行自动布局更改,然后重新设置类。挺烦人的,但是很有效。
本·凯恩2016年

7

可能来晚了,但是当我遇到这个问题时,添加这些代码进行初始化对我有用

required override init(frame: CGRect) {
    super.init(frame: frame)
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

做到了!伙计,我发疯了,无法摆脱那个错误!
livingtech

3

我遇到了与在情节提要中使用POD中的自定义视图相同的问题。

做以下事情为我解决了这个问题

  • 在pod上添加以下行(以在动态框架中打开POD) use_frameworks!
  • pod update
  • 重新启动Xcode

3

在最后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

1

在Mac中更新cocoapods,使用以下命令部分为我解决了此问题:

sudo gem install cocoapods

1

问题可能是您使用了框架或自定义UILabel类。例如MarqueLabel或TTTAttributed标签。#use_frameworks在Pod文件中取消注释。运行pod update。清理并重建您的项目。这样可以解决您的问题。


1

我在使用时曾经有一个类似的错误,Cocoapods但无法use_frameworks!。我最终通过派生一个框架,使用IBDesignableIBInspectable和移除这些关键字。所有定制均通过编程方式完成:

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中创建错误。但是,很遗憾,我必须执行此解决方法。



1

当基类和子类都被称为@IBDesignable类时,我已经遇到了这个问题。可以与第三方类和您的类进行检查(如果已继承)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.