标签: fetched-property

有没有人有核心数据中的fetched-property的工作示例?

我试过几次使用获取的属性,虽然它似乎是正确的方法,但它永远不会起作用.

在我最近的尝试中,我将fetched-property添加到我的实体,选择模型中的另一个实体作为'destination',并将谓词设置为我知道有效的条件.

问题1:当生成实体的NSManagedObject类时,它不包含fetched-property的任何内容.经过一些搜索后,我在.h文件中添加了声明,在.m文件中添加了@dynamic语句(是的,我知道它是NSArray*类型).

问题2:即使在那之后,当我在代码中访问此属性时,我会抛出一个异常,说明fetch-request没有实体.我假设"实体"将被指定为"目的地",实际上它就在那里.

所以,我希望有人提供一个具体的工作示例(iOS平台),其中在模型中定义了fetched-property,在NSManagedObject派生类中声明,并实际从代码中使用.

在这一点上,我放弃了这个时间浪费,只是自己实现了获取请求代码.

iphone core-data objective-c fetched-property ios

22
推荐指数
3
解决办法
2万
查看次数

如何对Core Data获取的属性进行排序

核心数据文件指出:

与[fetched]属性关联的获取请求可以具有排序顺序,因此可以对所获取的属性进行排序.

如何在Xcode的数据模型编辑器中为fetched属性指定排序描述符?我无法在任何地方找到相关领域.我正在为iPhone平台开发,如果这有任何区别.

如果通过图形模型编辑器无法实现这一点,那么如何在代码中修改fetched属性的获取请求以使其具有排序描述符?

sorting iphone xcode core-data fetched-property

20
推荐指数
4
解决办法
4万
查看次数

在XCode数据模型编辑器中获取属性以获得最小值

如何在XCode的数据模型编辑器中添加一个Fetched属性,以获得一个属性的最小值?

我的模特:

型号http://www.freeimagehosting.net/uploads/b48853070e.png

Item (name, note, storedItem)
StoredItem (price, item)
Item 1 ---> N StoredITem (1->N Relationship)
Run Code Online (Sandbox Code Playgroud)

我希望Item有一个名为minPrice的fetched属性,它的值是storedItems中为price设置的最小值.

例:

Item1 (banana, storedItem1 ... storedItem4, 10)
StoredItem1 (10,item1)
StoredItem2 (15,item1)
StoredItem3 (30,item1)
StoredItem4 (54,item1)
Run Code Online (Sandbox Code Playgroud)

我在目的地放什么?StoredItem?

数据模型编辑器中的提取属性http://www.freeimagehosting.net/uploads/2a68de007d.png

我将什么表达?

数据模型编辑器中的表达式http://www.freeimagehosting.net/uploads/766ab9af6f.png

xcode cocoa core-data minimum fetched-property

11
推荐指数
1
解决办法
1381
查看次数

核心数据获得值的总和.提取属性与传播

我对Core Data相对较新(来自SQLite背景).刚读完"iOS的核心数据"一书,但当我开始为具有以下型号的应用程序建模时,我留下了一些令人困惑的问题:

  1. "帐户"实体,具有多对多的"交易"关系和"startingBalance"属性
  2. '交易'实体,具有多对多的"支付"关系(与账户相反)
  3. "付款"实体,其中包含实际"付款金额"的详细信息

出于性能原因,我想对模型进行去规范化,并在"帐户"实体中添加"TotalAmountSpent"属性(如本书所示),这样我就可以在发生变化时继续更新.

在实践中,这似乎很难通过Core Data实现.我无法弄清楚如何正确地做到这一点(并且不知道正确的方法是什么).所以我的问题是:

a)我应该将'TotalAmountSpent'更改为Fetched Property吗?是否有性能影响(我知道它是懒惰加载但我几乎肯定会为每个帐户获取该属性).如果我这样做,我需要能够在给定的时间段(例如最后三天)内获得花在'startingBalance'上的总金额.这在SQL中看起来很简单,但我如何在Core Data中执行此操作?我读过我可以使用@sum聚合函数但是如何使用@sum过滤'date'?我还读了数据中的任何变化都需要刷新fetched属性.我如何'倾听'改变?我是在"付款"实体的'willSave'方法中做到的吗?

b)每次将新的付款添加到交易时,我是否应该使用传播并手动更新"TotalAmountSpent"?最好的地方是什么?我应该在重写的NSManagedObject的'willSave'方法中做到吗?我担心,如果在帐户上更新了"startingBalance"字段,更新所有相应的交易/付款将是一场噩梦.然后我必须加载每笔付款并计算花费的总金额和帐户的最终余额.如果有数千笔付款可怕

任何关于此事的指导都将非常感激.谢谢!

iphone core-data objective-c fetched-property

5
推荐指数
1
解决办法
3415
查看次数

如何确保从上下文而不是缓存中获取Core Data Fetched属性?

我有一个包含2个实体的托管对象模型.

其中一个实体(让我们称之为EA)通过引用第二个实体的子集(Call it EB)中的一些属性来计算它的属性.

EA中我设置了一个带有谓词的"Fetched Property",它返回我需要的EB对象的子集.

当我删除,插入EB对象或更改EB对象时,我使用通知来确保EA保持最新.因此,例如在"保存"之后,EA对象将重新计算它的属性.

我的问题是,当我访问所取得的属性(我做EB使用模型类[self valueForKey:FetchedPropertyKeyName]),它似乎只提取缓存版本.换句话说,第一次没问题,但是当我添加另一个EA对象时,我在访问fetched属性时没有在返回的数组中看到它.当我删除一个对象时,这是最明显的,因为这个对象不再存在,导致崩溃.

Fetched Properties的文档说:

如果更改了目标实体中的对象,则必须重新评估fetched属性以确保它是最新的.您使用refreshObject:mergeChanges:手动刷新属性 - 这会导致在下次触发对象故障时再次执行与此属性关联的获取请求.

对不起,如果这听起来是一个愚蠢的问题,但不幸的是我没有看到我应该打电话到哪里refreshObject:mergeChanges:

iphone core-data fetched-property

3
推荐指数
1
解决办法
2676
查看次数