NSFetchRequest - 它可以返回一个属性数组吗?

时间:2009-05-31 04:04:03

标签: iphone sqlite core-data

除非我遗漏了文档中的内容,否则我无法看到是否可以执行NSFetchRequest以便它返回对象属性的数组,而不是对象本身。

例如,我有:

@interface SaleDate {
NSDate *open;
NSDate *close;
Sale *sale;
}

我想查询close >= $today之类的内容。然而,这给了我一个SaleDate数组,当我真正想要的是一个独特的Sale数组。我正在使用NSFetchedResultsController,因此需要它来处理Sale对象。

顺便提一下,我在使用二元存储时有另一个(首选)查询工作 - 它是SQLite存储,它让我通过箍来​​查找备用但等效的查询。

2 个答案:

答案 0 :(得分:1)

iPhone OS 2.x和Mac OS X 10.5没有此功能。

请参阅适用于iPhone OS 3.0的NSFetchRequest文档。

特别是,你想看看

-setResultType:
-setReturnsDistinctResults:
-setPropertiesToFetch:

答案 1 :(得分:1)

如果您有一个SaleDate数组并想要一个Sale数组,请写下:

NSArray *arrayOfSale = [arrayOfSaleDate valueForKeyPath:"@sale"];

这假设SaleDate符合“销售”会员的KVC标准。如果SaleDate是一个托管对象,而“sale”是一个建模属性,情况已经如此。