Ian*_*nry 77
NSFetchRequest
通过将sortDescriptors
属性设置为NSSortDescriptor
s 数组,可以在检索数据时指定排序.但是如果您已经拥有它NSSet
并且不想再发送另一个获取请求,则可以使用:
[[theSet allObjects] sortedArrayUsingDescriptors:sortDescriptors];
Run Code Online (Sandbox Code Playgroud)
它会NSArray
在你调用allObjects
之后创建一个临时的,然后在另一个排序的数组之后创建,所以它不是100%有效,但对于合理大小的数据集(当然小于排序成本),开销应该可以忽略不计.
实际上,我错了 - NSSet也有这个sortedArrayUsingDescriptors:
方法.所以你可以一次打电话[theSet sortedArrayUsingDescriptors:descriptors]
,一起做.
你必须自己排序,但这不是很难......
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Sprocket" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"sortVariable" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
NSError *error;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
self.sprocketArray = mutableFetchResults;
[sortDescriptors release];
[sortDescriptor release];
[mutableFetchResults release];
[request release];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
34300 次 |
最近记录: |