所以。在我对这条消息感到讨厌之前,先听我说完。我很乐意听到你的想法。我正在编写一个我认为我需要使用核心数据的程序,因为稍后我希望可以从OS和多个iOS设备轻松地访问一些变量的状态。
我正在做的是一个OS程序,它将控制phidgets (phidgets.com)来控制和侦听现实世界对象中的状态变化。例如:电机是否接通。打开和关闭马达。打开状态灯等。
我最初认为我应该做一些全局变量,我可以修改、轮询和操作这些变量,这样就可以有一个中央状态板来处理程序的逻辑。但是,由于苹果每年都会对核心数据进行工程设计,因此我认为,利用核心数据进行这项工作将使我能够更容易地将其与iOS设备同步,这些设备可以远程控制或监控上述状态。
你能想象到有什么好方法可以:
-startup程序,确认只有一个"SystemStatus“类型的实体,如果没有,就创建一个。如果有,我们继续,并且能够让程序用它控制的现实世界对象的状态更新它的属性。
使用核心数据也是我想到的一件事,因为它也会让我有一个地方来持久化所收集的数据的存储历史。例如:电机轴承温度随时间变化。
发布于 2013-12-07 09:31:00
如果您确保对此对象的访问是通过您的API完成的,那么核心数据将成为singleton对象的getter方法背后的实现细节。Core Data中没有告诉它只创建一个对象的工具,但是如果您确保对对象的访问是通过您自己的包装器完成的,那么您可以按需获取它,如果它不存在,您可以插入、保存并将其传递给调用者。
在使用核心数据对象时,需要考虑的一个重要问题是多线程。将同一对象传递给多个线程非常容易出错,并且需要锁定机制(或者使用Apple的基于块的API)。对于您所描述的内容,这并不是很直接。考虑在内部使用核心数据对象的包装器对象(在基于块的API中包装对属性的访问),或者使用与核心数据不同的方法。
https://stackoverflow.com/questions/20436034
复制相似问题