欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

MagicRecord For IOS API深层解析

发布时间:2024/7/23 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 MagicRecord For IOS API深层解析 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
一、NSManagedObjectContext创建和获取

1.默认上下文(每种只存在一个)

(1)MR_rootSavingContext:此方法返回的上下文类型为NSPrivateQueueConcurrencyType(后台线程),直接关联持久化协调器,对此上下文对象执行保存方法,会将所有关联到此上下文的子上下文内容保存的数据库文件。

(2)MR_defaultContext:此方法返回的上下文类型为NSMainQueueConcurrencyType(主线程),此上下文会关联到MR_rootSavingContext,作为MR_rootSavingContext的子上下文。当此上下文会回调主线程时,请不要调用此上下文去保存数据。

(3)MR_resetDefaultContext:重置MR_defaultContext。

2.创建上下文

(1)MR_context:此方法创建一个NSPrivateQueueConcurrencyType类型的上下文,作为MR_rootSavingContext的子上下文。

(2)MR_contextWithParent:此方法创建一个NSPrivateQueueConcurrencyType类型的上下文,父上下文自己指定。没有指定持久化协调器。

(3)MR_contextWithStoreCoordinator:此方法创建一个NSPrivateQueueConcurrencyType类型的上下文,自己指定持久化协调器。此上下文默认没有父上下文。

(4)MR_newMainQueueContext:此方法创建一个NSMainQueueConcurrencyType类型的上下文,默认没有父上下文,没有指定持久化协调器。

(5)MR_newPrivateQueueContext:此方法创建一个NSPrivateQueueConcurrencyType类型的上下文,默认没有父上下文,没有指定持久化协调器。

3.调试工具方法

(1)MR_setWorkingName:设置上下文别名,用于调试。

(2)MR_workingName:访问上下文别名。

(3)MR_description:此上下文描述。

(4)MR_parentChain:此上下文的所有父上文描述。

二、NSManagedObjectContext保存方法汇总:

1.MR_saveOnlySelfWithCompletion:在此上下文对应队列中异步执行保存方法。此方法只保存当前上下文以及其父上下文,如果此上下文以及其父上下文没有关联持久化协调器,则数据更改不会同步到数据库文件。block是在主线程回调的。

2.MR_saveToPersistentStoreWithCompletion:在此上下文对应队列中异步执行保存方法。此方法会一直追溯到其所有上级上下文,最后将数据更改保存到数据库文件。block是在主线程回调的。

3.MR_saveOnlySelfAndWait:类似于MR_saveOnlySelfWithCompletion,但此方法同步执行。

4.MR_saveToPersistentStoreAndWait:类似于MR_saveToPersistentStoreWithCompletion,但此方法同步执行。

5.MR_saveWithOptions:completion:保存此上下文,以上四种方法最后都会调用此方法来执行。

6.MRSaveOptions可选选项:

 (1)MRSaveOptionNone:空选项。默认只保存当前上下文以及其父上下文。使用异步方式。

 (2)MRSaveParentContexts:保存此上下文以及所有上级上下文,直到数据同步到数据库文件。

 (3)MRSaveSynchronously:使用同步方式。

 (4)MRSaveSynchronouslyExceptRootContext:使用同步方式,但是根上下文使用异步。

三、NSManagedObjectContext数据同步

1.MR_observeContext:让当前上下文去监听另一个上下文的数据改变,当另一个上下文有数据更改时,会自动同步到此上下文。

2.MR_observeContextOnMainThread:同上,但是数据同步过程是在主线程做的。

3.MR_stopObservingContext:停止监听另一个上下文的数据改变。

四、Block方式关联存储

1.MR_saveWithBlock:传入一个上下文,作为当前上下文的子上下文。调用子上下文的performBlock(异步)方法,执行Block中的任务,最后将所有数据改变同步到数据库文件。

2.MR_saveWithBlock:completion:同上,增加一个任务结束的回调。

3.MR_saveWithBlockAndWait:传入一个上下文,作为当前上下文的子上下文。调用子上下文的performBlockAndWait(同步)方法,执行Block中的任务,最后将所有数据改变同步到数据库文件。

总结

以上是生活随笔为你收集整理的MagicRecord For IOS API深层解析的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。