0

我有我的第一个应用程序正在筹备中,我确切地知道它将如何工作;绞尽脑汁的部分是背景中的核心数据模型。

该应用程序的前提是记录您何时给某人钱以及何时从该人那里收到钱,或接收/赠送礼物。它不会很复杂,因为它是针对老一代的。

UI 原则将是基于选项卡的方法,第一个选项卡是“时间线”。在时间线中对您给予和接受的人的参考。

时间线中显示的数据是: - 每个“部分”顶部的日期让我们称之为 - 事件名称 - 人名 - 位置 - 货币 - 金额

我想我会在一个带有标题、副标题的单元格中显示它,也许还可以合并场合和位置。如果用户单击一个单元格,它将显示该人与您之间的所有条目和交易。

用户还可以通过事件名称、人名、位置和/或日期进行搜索。

考虑到这一点,我想到了如何绘制核心数据模型,但它只是没有意义。

因为我想使用 NSFetchedResultsController,所以我知道我无法跨多个实体获取请求,但我可以使用关系。这就是我迷路的地方。

我的一个想法是拥有一个具有 nameOfEvent、nameOfPerson、Date、Currency 和 Amount 作为属性的实体。这样,在时间轴视图中,我可以为每个单元格引入所有信息。

同时这对我来说并不完全有意义,因为应该有更多的实体。例如,我想:

场合(实体) 名称(属性) 位置(属性) 日期(属性)

人(实体)名称(属性)

礼物(实体) MoneyAmount(属性) 货币(属性) 礼物(属性 - 可选)

动作(实体)给定(属性 - 布尔) 接收(属性 - 布尔)

这是我的另一个想法,但如果可能的话,获取每个单元格似乎会花费很多精力。应用程序的每个用户永远不会有超过 100 个以上的单元格,所以我们不是在谈论图像等。

我坚持这种方法;我要继续使用关系吗?如果是这样,是什么?

我迷路了,任何帮助将不胜感激!

谢谢,阿米特

4

1 回答 1

0

你在正确的轨道上!

不用担心复杂性或数据量 - Core Data 可以在移动设备上轻松处理 100,000 条记录。通过关系,您可以非常快速有效地获取和过滤这些数据。

您的数据模型可能如下所示:

Person <---->> Transaction 
Transaction <<----------> Location
Transaction <<----------> Occasion
Transaction <-----------> Gift

Person (name, birthday, etc)
Transaction (createdDate, status [given, pending, canceled, etc.], category, type)
Location (name, lat, lon, address...)
Occasion (title, category)
Gift (type, amount, currency, shortName, notes)

正确设置后,您可以使用 a 轻松排序和分组,NSFetchedResultsController并且可以使用方便的点符号轻松访问所有属性,而不必担心获取,例如

NSUInteger numberOfGifts = person.transactions.count;

NSSet *nearLocations = [locations filteredSetUsingPredicate:locationPredicate];
NSSet *nearTransactions = [nearLocations valueForKeyPath:@"transaction"];

等等

享受!

于 2013-07-25T07:04:16.763 回答