您可以使用键值编码来获取属性值数组。假设这
averageDistance
是Session的一个属性,您可以执行以下操作:
NSArray *sessions = ...; // Your sorted array of Session objects
NSArray *distValues = [sessions valueForKey:@"averageDistance"];
distValues
现在是一个NSNumber
包含averageDistance
来自每个 Session 对象的对象数组。
更新:正如讨论中证明的那样,从Session到SessionDetails存在一对多关系,是SessionDetailsaverageDistance
的一个属性,您需要所有可能的对,按.(timeCompleted, averageDistance)
timeCompleted
因此,您应该获取所有
SessionDetails对象而不是获取Session对象,并根据timeCompleted
相关会话对它们进行排序:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"SessionDetails"];
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"session.timeCompleted" ascending:YES];
[request setSortDescriptors:@[sort]];
NSArray *result = [context executeFetchRequest:request error:&error];
(我假设您session
从
SessionDetails到Session之间存在反向关系。)
现在您可以使用键值编码从这些对象中提取timeCompleted
和值:averageDistance
NSArray *xValues = [result valueForKeyPath:@"session.timeCompleted"];
NSArray *yValues = [result valueForKey:@"averageDistance"];