菜鸟教程小白 发表于 2022-12-13 14:03:07

ios - 在 TodayExtension 中使用 MagicalRecord (CoreData)


                                            <p><p>我正在为任务列表的生产力应用程序开发 TodayExtension,我需要在 TodayExtension 内的表格中显示一些任务的列表。</p>

<p>我在设置表格 View 时没有任何问题,但是当我尝试设置 MagicalRecord 和 CoreData 时出现崩溃。</p>

<p>我的崩溃方法的源代码是:</p>

<pre><code>- (void)setupCoreDataStackWithStoreNamed:(NSString *)storeNamed
{
    if ( != nil)
    {
      return;
    }

    NSManagedObjectModel *model = ;
    NSPersistentStoreCoordinator *psc = [ initWithManagedObjectModel:model];

    NSString *containerPath = [ containerURLForSecurityApplicationGroupIdentifier:APP_GROUP].path;
    NSString *sqlitePath = ;
    NSURL *storeURL = ;

    ;
    ;
    ;
}
</code></pre>

<p>崩溃的那一行是:</p>

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

<p>错误信息是:</p>

<pre><code>Terminating app due to uncaught exception &#39;NSInvalidArgumentException&#39;, reason: &#39;CoreData SQL stores only support file URLs (got /private/var/mobile/Containers/Shared/AppGroup/66A40F3A-9E25-42BD-9BD0-D86BC5A93FBD/myappname_560967e1665e88ab37000000.sqlite).&#39;
</code></pre>

<p>我的灵感来自这篇文章 <a href="https://stackoverflow.com/questions/25407428/how-to-access-coredata-model-in-today-extension-ios" rel="noreferrer noopener nofollow">How to access CoreData model in today extension (iOS)</a> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您正在将 <code>NSString</code> url (/../...) 传递给 <code>MR_addSqliteStoreNAamed</code>,但崩溃告诉您需要传递文件 url (文件://...)</p>

<p>所以你必须改变这个源代码:</p>

<pre><code>NSString *containerPath = [ containerURLForSecurityApplicationGroupIdentifier:APP_GROUP].path;
NSString *sqlitePath = ;
NSURL *storeURL = ;
</code></pre>

<p>到这里:</p>

<pre><code>NSURL *storeURL = [ containerURLForSecurityApplicationGroupIdentifier:APP_GROUP];
storeURL = ;
</code></pre>

<p>另一种解决方案是:</p>

<pre><code>NSString *pathToYourSqliteFile = @&#34;/your/path/here&#34;;
NSURL *storeURL = ;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 TodayExtension 中使用 MagicalRecord (CoreData),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/35102335/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/35102335/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 TodayExtension 中使用 MagicalRecord (CoreData)