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 'NSInvalidArgumentException', reason: 'CoreData SQL stores only support file URLs (got /private/var/mobile/Containers/Shared/AppGroup/66A40F3A-9E25-42BD-9BD0-D86BC5A93FBD/myappname_560967e1665e88ab37000000.sqlite).'
</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 = @"/your/path/here";
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]