- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题需要更多 focused .它目前不接受答案。
想改进这个问题?更新问题,使其仅关注一个问题 editing this post .
6年前关闭。
Improve this question
我正在开发一个已经实现 Core Data 的 iOS 应用程序。所以我无法从头开始理解核心数据的实现。但我可以在添加新功能的同时处理 Core Data。但我对 Core Data 有很多疑问。我无法从任何博客中找到明确的想法。
1) 问题 1 - 我已经设置了应用程序的体系结构,它具有 Web 服务 Controller 类、Web 服务帮助器类、DatabaseManager 类、UiViewController 类和模型对象作为核心数据的一部分。
Web 服务 Controller 使用 NSURLConnection 和其他相关功能连接到服务。一旦从 Web 服务获得响应,它就会使用 block 向 Web 服务帮助器类提供回调。
Web 服务处理程序类有助于从所有 UIViewController 调用服务。 Web 服务助手类作为中间类在 UIViewControllers 和 Web 服务 Controller 之间建立 Web 服务。因此,当 Web 服务助手从 Web 服务 Controller 获取回调时,它会在 block 的帮助下将响应发送回 UIViewController。
我的问题在这里,将 Web 服务响应存储到核心数据以及更新 UI 中的数据应该是什么流程。我想知道这样做的最佳做法。我应该将数据保存到核心数据中,然后检索并在 UI 中显示吗?但是如果数据很大,保存数据需要时间。核心数据操作和更新 UI 应该同步。
2) 问题 2 - 我在许多博客中阅读了有关 Core Data 操作并发性的内容,但我对 Core Data 中的并发性还不是很清楚。
据我所知,为了实现并发,我们必须创建两个 managedobjectcontext,一个带有 NSMainQueueConcurrencyType,另一个带有 NSPrivateQueueConcurrency。然后所有的保存和更新操作都必须在 privateMOC[NSPrivateQueueConcurrencyType] 中执行,读取可以在 mainMOC[NSMainQueueConcurrencyType] 中执行。此操作与 performBlock 有什么关系?
3) 问题 3 - 由于我们可以创建多个 moc,那应该是 NSConfinementConcurrencyType 并在所有 doc 上执行 performBlock 以实现并发吗?
4) 问题4 - 问题2和问题3中提到的实现并发有什么区别?
5) 问题 5 - 考虑一下,我正在使用核心数据读取一条记录,并且由于并发性,同一条记录必须更新一个值。这种情况如何处理。我在这里知道的是我必须使用合并策略。但我不确定如何实现这一点,因为我不清楚上述情况。
6) 问题 6 - 在一个应用程序中,可以创建多少个 NSMainQueueConcurrencyType、NSConfinementConcurrencyType 和 NSPrivateQueueCONcurrencyType 类型的 managedobjectcontext?
任何人都可以回答以上问题吗?
提前致谢。
最佳答案
这确实应该是几个单独的问题。我将尝试回答架构问题,并可能涉及其他一些问题。
Web 服务的返回路径不应直接到达任何 View Controller 。您的服务助手解析响应并验证它的位置是您要保存到核心数据的位置。这个任务应该交给另一个类(class)。
从 View Controller 端,您想使用 NSFetchedResultsController
s (FRCs) 以了解模型何时更改。您可以设置 FRC 来观察任意数量的对象,包括单个对象。
FRC 旨在用于 TableView ,并且有许多示例可用于说明如何将它们用于此目的。例如,如果您有一个正在编辑单个对象的 View ,并且您使用 Web 服务来保存更新,那么您可以有一个 FRC 正在监视已编辑的对象。保存完成后,FRC 将触发,您可以更新 UI 以指示成功,或其他。
核心数据
正如您所发现的,Core Data 并发并非微不足道。我对以下设置有最好的体验:
NSMainQueueConcurrencyType
的只读上下文.这是绑定(bind)到持久存储的初始上下文。此上下文在整个 session 中保持不变。 NSOperationQueue
并发性为 1。此队列上的操作克隆主(只读)上下文,并发类型为 NSConfinementConcurrencyType
, 并连接到同一个商店。只允许保存这些克隆的上下文。当操作完成时,这些上下文将被丢弃。 NSMergeByPropertyObjectTrumpMergePolicy
的合并策略设置克隆的上下文,以及
NSMergeByPropertyStoreTrumpMergePolicy
的主要上下文.
关于ios - 核心数据架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33779464/
Linux 有许多跨(假设是 2 个)CPU 内核执行的线程和进程。我希望我的单线程 C/C++ 应用程序成为 CPU0 上的唯一线程。我如何“移动”所有其他线程以使用 CPU1? 我知道我可以使用
我有一个类似于下图的数据库表 Table with 2 columns (UserId and value) 我将传递 UserId 和 2 个字符串。例如:userId: 1, key1: h1,
我想在我的新项目中使用 ASP.NET Core,因为我听说它更快。但是,该项目将使用广泛的数据库访问功能,Entity Framework Core 不支持其中一些功能。我想知道,是否可以使用 En
我已经使用 EntityFrameworkCore.SqlServer 2.0 开发了 asp .net core wep api 2.0 应用程序。它是使用数据库优先方法开发的。当尝试使用 dbco
我已经阅读了很多关于这个主题的文章,但我仍然无法处理这个问题。对不起,如果它是重复的,无论如何! 所以基本上,我正在从头开始构建一个 Angular 应用程序,并且我想按照最佳约定来组织我的代码。我有
我对MPI还是陌生的,所以如果这是一个琐碎的问题,请原谅我。我有一个四核CPU。我想运行一个在单个内核上使用两个进程的OpenMPI C++程序。有什么办法吗?如果是这样,那又如何?我提到了this
下面是一个传播异常处理机制的类问题,所需的输出是异常。任何人都可以解释为什么输出是异常,在此先感谢。 Class Question { public void m1() throws Excep
我想打印每个获得 CPU 时间片的进程的 name 和 pid。可能吗? 最佳答案 对于单个流程,您可以在以下位置获取此信息: /proc//stat 第14和第15个字段分别代表在用户态和内核态花费
我想知道是否可以识别具有特定 thread-id 的线程使用的物理处理器(核心)? 例如,我有一个多线程应用程序,它有两 (2) 个线程(例如,thread-id = 10 和 thread-id =
我有一个需要身份验证的 Solr 核心。假设我有一个用户,密码为password。当我现在尝试在控制台中创建一个 Solr 核心时 bin\solr create -c test 我收到 HTTP 错
我想为与使用它的项目不同的类库中的第二个和后续数据库创建迁移。有皱纹。我永远不会知道连接字符串,直到用户登录并且我可以从目录数据库 (saas) 中获取它。 对于目录数据库,我使用了来自 this 的
我想为一种可以产生 GHC Core 的简单语言创建一个前端。然后我想获取这个输出并通过正常的 GHC 管道运行它。根据this page , 不能直接通过 ghc 命令实现。我想知道是否有任何方法可
阅读文档,我构建了 2 个使用 BLE 连接 2 个 iDevices 的应用程序。 一个设备是中央设备,另一个是外围设备。 Central在寻找Peripheral,当找到它时,探索它的服务和特性,
在我的网络应用程序中,我对长时间运行的任务进行了操作,我想在后台调用此任务。因此,根据文档 .net core 3.1 Queued background tasks我为此使用这样的代码: publi
Solr 1.4 Enterprise Search Server 建议对核心副本进行大量更新,然后将其换成主核心。我正在按照以下步骤操作: 创建准备核心:http://localhost:8983/
它们是否存在,如果存在,文档和代码在哪里? 最佳答案 它们位于 Git 的 test 目录中。 https://github.com/jquery/jquery/tree/master/test 关于
我有一个 Lisp (SBCL 1.0.40.0.debian) 应用程序 (myfitnessdata),它使用以下代码来处理命令行参数: (:use :common-lisp) (:export
Core是GHC的中间语言。阅读Core可以帮助你更好地了解程序的性能。有人向我索要有关阅读 Core 的文档或教程,但我找不到太多。 有哪些文档可用于阅读 GHC Core? 这是我迄今为止发现的内
我有一个核心 WebJob 部署到 Azure Web 应用程序中。我正在使用WebJobs version 3.0.6 . 我注意到,WebJob 代码不会立即拾取对连接字符串和应用程序设置的更改(
我有一个在内部构造和使用 SqlConnection 类的第三方库。我可以从该类继承,但它有大量重载,到目前为止我一直无法找到合适的重载。我想要的是将参数附加到正在使用的连接字符串。 有没有办法在 .
我是一名优秀的程序员,十分优秀!