菜鸟教程小白 发表于 2022-12-12 14:19:14

ios - 应用更新后 CoreData 崩溃


                                            <p><p>我有一个非常烦人的问题。我有一个“CoreData”应用程序,目前正在生产中,一切正常。我有应用程序的更新,但只要在原始应用程序上安装更新程序,应用程序就会在下面的代码行中崩溃。</p>

<pre><code>
</code></pre>

<p>我收到的错误是“Can't use fetch request with fetched property description (entity model mismatch)”。</p>

<p>CoreData 模型发生了更改,但我为我的更改创建了一个新版本的模型,因此它应该将更改合并到新模型中。这是我已经做了一百次的相同过程,并且始终有效。这次除外。</p>

<p>我能想到的唯一可能导致此问题的区别是,我从 CoreData 模型中删除了一些旧的 Fetch Requests,但这是在更新的模型版本中完成的,而不是在原始模型中完成的。</p>

<p>你们都知道是什么原因造成的吗?正如我所提到的,我确实更新了 CoreData 模型版本并将其选为应用程序的当前模型。此外,非常奇怪的是,只有在更新后第一次运行应用程序时才会发生崩溃。崩溃发生后,我可以重新启动应用程序,一切正常。</p>

<p>谢谢!</p>

<p>!** 编辑**!</p>

<p>如果这有帮助,这里是我的调用堆栈。</p>

<pre><code>Last Exception Backtrace:
0   CoreFoundation                  0x32ac029e __exceptionPreprocess + 158
1   libobjc.A.dylib               0x3a95697a objc_exception_throw + 26
2   CoreFoundation                  0x32ac01c0 + + 100
3   CoreData                        0x328a2678 - + 164
4   CoreData                        0x328a2788 - + 76
5   CoreData                        0x32899b0a - + 1238
6   CoreData                        0x328d18a6 - + 702
7   CoreData                        0x3284e534 - + 272
8   CoreData                        0x3284e2f2 - + 302
9   CoreData                        0x32939c4c - + 692
10CoreData                        0x328da838 - + 512
11CoreData                        0x3292bc54 - + 276
12CoreData                        0x3292afa8 - + 84
13CoreData                        0x3292c4b2 - + 1930
14CoreData                        0x3284f384 - + 3340
15MSM iPad                        0x001cb4c2 - + 466
16MSM iPad                        0x001cbb12 - + 94
17MSM iPad                        0x000b6678 - (AppDelegate.m:117)
18UIKit                           0x34928ad4 - + 248
19UIKit                           0x3492865e - + 1186
20UIKit                           0x34920846 - + 694
21UIKit                           0x348c8c34 - + 1000
22UIKit                           0x348c86c8 - + 68
23UIKit                           0x348c8116 _UIApplicationHandleEvent + 6150
24GraphicsServices                0x365bc59e _PurpleEventCallback + 586
25GraphicsServices                0x365bc1ce PurpleEventCallback + 30
26CoreFoundation                  0x32a9516e __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 30
27CoreFoundation                  0x32a95112 __CFRunLoopDoSource1 + 134
28CoreFoundation                  0x32a93f94 __CFRunLoopRun + 1380
29CoreFoundation                  0x32a06eb8 CFRunLoopRunSpecific + 352
30CoreFoundation                  0x32a06d44 CFRunLoopRunInMode + 100
31UIKit                           0x3491f480 - + 664
32UIKit                           0x3491c2fc UIApplicationMain + 1116
33MSM iPad                        0x000b6432 main (main.m:17)
34libdyld.dylib                   0x3ad8db1c start + 0
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我发现我必须在应用更新后删除缓存:</p>

<p>要么不缓存获取的项目</p>

<pre><code> NSFetchedResultsController *aFetchedResultsController = [ initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:nil];
</code></pre>

<p>或在更新时删除缓存</p>

<pre><code>;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 应用更新后 CoreData 崩溃,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/18622056/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/18622056/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 应用更新后 CoreData 崩溃