如何解决在NSPersistentCloudKitContainer中进行更改时,应用程序的tableview崩溃
在我的应用程序中,我列出了可以在任何设备上调整的项目列表。当我在一台设备上更改应用程序并在另一台设备上重新启动该应用程序时,我发现崩溃了。
它给了我以下崩溃信息:
2020-09-04 16:13:30.676671+0200 MyWhiskyLog[2583:1043268] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException',reason: 'Could not open file.'
*** First throw call stack:
(0x1abd9096c 0x1abaa9028 0x1b08e4234 0x1b08e4460 0x1e1899564 0x1e17a621c 0x104975254 0x10497a264 0x1b006e970 0x1b003b428 0x1b0058bd8 0x1b0331b1c 0x1abaa4a4c 0x1b2947a9c 0x1b2947eec 0x1b295a614 0x1b289f1c4 0x1b28c9fd0 0x1b28037bc 0x1b28d1cc8 0x1abce1dac 0x1abd0c7c4 0x1abd0be90 0x1abd06ac8 0x1abd05f40 0x1b5f83534 0x1afe7ea60 0x1049c81e4 0x1abb84e18)
libc++abi.dylib: terminating with uncaught exception of type _NSCoreDataException
我注意到我的列表数据已更改,尤其是我的图像数据。看来数据已转换为路径,因此应用程序崩溃了。
之前:
whisky = <MyWhiskyLog.Whisky: 0x2816dabc0> (entity: Whisky; id: 0xd5d3139dc67efd68 <x-coredata://2DB88E4B-B787-47DB-A30C-3043522FF37F/Whisky/p5>; data: {
age = 12;
alcoholAmount = "40 %";
averageRank = 4;
bodyRank = 4;
cask = "";
country = "Andorra.png";
finishRank = 4;
identifier = "D4F0C398-7335-499B-B7B8-97E3AE64754F";
name = Redbreast;
nose = "";
noseRank = 5;
note = "";
price = "50 $";
status = 1;
taste = "";
tasteRank = 5;
type = "";
whiskyFirstCharacter = R;
whiskybottleimage = "{length = 50,bytes = 0x89504e47 0d0a1a0a 0000000d 49484452 ... 4347436f 6c6f7253 }";
})
之后:
the name of the whisky Optional("The Glenlivet")
whisky = <MyWhiskyLog.Whisky: 0x2816dac10> (entity: Whisky; id: 0xd5d3139dc67afd68 <x-coredata://2DB88E4B-B787-47DB-A30C-3043522FF37F/Whisky/p4>; data: {
age = 12;
alcoholAmount = "41 %";
averageRank = 3;
bodyRank = 3;
cask = "";
country = "Bhutan.png";
finishRank = 3;
identifier = "4D80C3A3-98F9-41B2-A4F4-D7901CF8FF90";
name = "The Glenlivet";
nose = "";
noseRank = 3;
note = "";
price = "35 $";
status = 1;
taste = "";
tasteRank = 3;
type = "";
whiskyFirstCharacter = T;
whiskyImage = nil;
whiskybottleimage = "NSData [_PFEvanescentData] with address 0x283bbdd70 backed by file at 'file:///var/mobile/Containers/Data/Application/FCD2F68B-0EDB-4671-82FF-38AFD9FCB848/Library/Application%20Support/ckAssetFiles/87504DB7-1E3F-4904-8F42-5EE6B84114B5'";
})
我的威士忌瓶图像数据发生了什么?我该如何解决此崩溃?在cellForRowAtIndexPath中调用此属性时,我注意到此崩溃:
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "whiskyCell",for: indexPath) as! WhiskyTableViewCell
if let whisky = fetchedResultsController?.object(at: indexPath) {
if let bottleImageWhisky = whisky.whiskybottleimage {
//set image of whisky in the tableviewcell
// here my app crashes
}
return cell
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。