如果项目是在 Xcode 10 beta (10L176w) 中使用 iOS12 SDK 编译的,UICollectionView 不能`dequeueReusableCellWithReuseIdentifier`

UICollectionView can't `dequeueReusableCellWithReuseIdentifier` if project is compiled in Xcode 10 beta (10L176w) with iOS12 SDK

Xcode 10 beta (10L176w) 版本已于日前发布。因此,作为一名开发人员,我下载了一个测试版来试用。我在 iOS 10.3.3 iPhone 上编译了我当前的项目,运行 它并得到了 UICollectionView 视图

抛出的异常

[12215:4622208] * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle (loaded)' with name 'AwesomeViewCell'' * First throw call stack: (0x1cb53b3d 0x1bddb067 0x1cb53a85 0x222553a7 0x226128ed 0x21de768b 0x3419d7 0x33de0b 0x22607851 0x21de75e1 0x21de5a93 0x21de03d7 0x331273 0x21d83483 0x1f9dbcb7 0x1f9cfd77 0x1f9cfc05 0x1f95e839 0x1f97cfdb 0x1f97db2f 0x1cb0f803 0x1cb0da55 0x1cb0e017 0x1ca611af 0x1ca60fd1 0x1e20bb41 0x21de9a53 0x26d77d 0x1c24e4eb) libc++abi.dylib: terminating with uncaught exception of type NSException

如果我在 Xcode 9.4(9F1027a) 上 运行 项目不会崩溃。我通过 nib 注册了单元格并且它被加载了

UINib *nib = [UINib nibWithNibName:@"AwesomeViewCell" bundle:_currentBundle];
    [collectionView registerNib:nib forCellWithReuseIdentifier:@"AwesomeViewCell"]; 

唯一的一点是 _currentBundle - 不是主应用程序包,而是 cocoapod 库的一个包。也许问题与此有关。

我还了解到 Xcode 还处于测试阶段。但是有人在 Xcode 10 beta 中也遇到过同样的错误吗?

问题与复制 CocoaPods 资源有关构建阶段

Xcode 10 beta 不复制资源。

已批准 CocoaPods 1.3.1 或之前版本创建的项目不能 运行 Xcode10 beta。 很简单,不做remove操作,升级CocoaPods后重新pod install,问题就解决了。 如果项目是CocoaPods 1.5.3(1.4.0及以后版本)新建的,则无需担心该问题。 https://github.com/CocoaPods/CocoaPods/issues/7823