从核心数据中获取所有记录,并从每条记录中获取一个属性的字符串(MagicalRecord)

时间:2013-08-19 19:08:38

标签: ios core-data magicalrecord

我试图获取用户在应用程序中保存的所有元素(这可能很容易),从每条记录中获取一个属性并将这些属性列在字符串中(这就是问题)。我该怎么做? 我写了一些东西,但我不认为这是正确的方法。请帮帮我!

 -(NSString*)getAllRecords
{
    NSArray* arra = [NewItem MR_findAllSortedBy:@"data" ascending:YES];
    NewItem* ctn = arra.;// I have not any idea

    return [NSString stringWithFormat:@"%@", [arra componentsJoinedByString:@", "]];

}

2 个答案:

答案 0 :(得分:2)

还有更多代码,但是:

NSFetchRequest *request = [NewItem MR_requestAllSortedBy:@"data" ascending:YES];
[request setResultType:NSDictionaryResultType];
[request setPropertiesToFetch:@[@"attributeName"];
NSArray *results = [NewItem MR_exceuteRequest:request];

NSArray *listOfValuesOfAttributeName = [results valueForKeyPath:@"@unionOfObjects.attributeName"];

最后,listOfValuesOfAttributeName基本上是您所追求的值的单个数组。这类似于以下sql“从NewItem中选择attributeName”。

需要最后一次valueForKeyPath:调用,因为结果返回是一个字典列表。你想要的是一个值列表。 @unionOfObjects keypath运算符会为您清除这一点。

答案 1 :(得分:1)

如果我理解你的问题,这应该做你想要的:

NSArray *elements = [NewItem MR_findAllSortedBy:@"data" ascending:YES];
NSArray *attributes = [elements valueForKey:@"attributeName"];
return [NSString stringWithFormat:@"%@", [attributes componentsJoinedByString:@", "]];

valueForKey:key应用于数组会返回一个数组,其中包含在每个数组对象上调用valueForKey:key的结果。