我试图获取用户在应用程序中保存的所有元素(这可能很容易),从每条记录中获取一个属性并将这些属性列在字符串中(这就是问题)。我该怎么做? 我写了一些东西,但我不认为这是正确的方法。请帮帮我!
-(NSString*)getAllRecords
{
NSArray* arra = [NewItem MR_findAllSortedBy:@"data" ascending:YES];
NewItem* ctn = arra.;// I have not any idea
return [NSString stringWithFormat:@"%@", [arra componentsJoinedByString:@", "]];
}
答案 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
的结果。