【问题标题】:Could Not load Nib in bundle无法在捆绑包中加载 Nib
【发布时间】:2017-04-04 00:08:59
【问题描述】:

我无法将 Nib 上传到我的表格视图,这个问题也发生在我正在处理的其他应用程序中,即使我确实有一些 NIb 的文件工作得很好。我什至重新安装 Xcode 试图解决这个问题。我按如下方式注册我的笔尖

let test = "test"

let cellNib = UINib(nibName: test, bundle: nil)
tableView.register(cellNib, forCellReuseIdentifier: test) 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: test, for:indexPath) as! testCell //after this function is called I get a crash 
    return cell
}

这是我从崩溃中得到的信息的一部分,我不知道是否有用。

'NSInternalInconsistencyException',原因:'无法在包中加载 NIB:'NSBundle(已加载)',名称为 'tests'' *** 首先抛出调用堆栈: ( 0 核心基础 0x000000010afdab0b __exceptionPreprocess + 171 1 libobjc.A.dylib 0x0000000107b98141 objc_exception_throw + 48 2 核心基础 0x000000010b043625 + [NSException raise:format:] + 197 3 UIKit 0x0000000108b59b24-[UINib 实例化WithOwner:选项:] + 501 4 UIKit 0x00000001088ac567-[UITableView _dequeueReusableViewOfType:withIdentifier:] + 402 5 UIKit 0x00000001088aca4b-[UITableView dequeueReusableCellWithIdentifier:forIndexPath:] + 71 6 Chaol 0x000000010759ebe9 _TFC5Chaol23QuestionsViewController9tableViewfTCSo11UITableView12cellForRowAtV10Foundation9IndexPath_CSo15UITableViewCell + 153

我的 .XIB 文件出现在副本包资源中。

【问题讨论】:

    标签: nib xcode8.2


    【解决方案1】:

    也许 nib 文件没有添加到您的目标中。 尝试这些步骤:

    1. 在项目中 > 目标 > 构建阶段

      展开复制捆绑资源

      单击 + 按钮并添加所需的 NIB 文件。

      按 Shift+Cmd+K 清理您的构建,然后运行。

    2. 在您的 .xib 文件中

      点击文件检查器

      在 Target Membership 部分,选择您正在使用的目标

    3. 另外,请仔细检查您的笔尖名称的拼写。

    【讨论】:

    • 我确实试过了,但没用。我现在已经以编程方式创建了所有内容。
    • 它启发了我如何找出问题所在 - 在重命名 xib 期间丢失了它的引用。我需要再次添加它。有趣的事实:git 没有发现它。
    • @ŁukaszSzpyrka 很明显 git 没有发现它。通常更改在您的 ProjectName.xcodeproj/project.pbxproj 中。
    猜你喜欢
    • 2011-11-07
    • 2017-11-01
    • 2016-11-21
    • 1970-01-01
    • 2014-08-24
    • 2013-07-26
    相关资源
    最近更新 更多