mr_*_*777 1 core-data ios swift
我正在尝试制作需要从 CoreData 获取 N 个随机对象的应用程序。
问题是数据库大小远远大于我想要获取的对象数量。因此,希望有一种不影响数据库中所有记录的方法。
是否可以在不向数据库中添加额外字段(例如,id)的情况下实现这一点?
我想收到对请求的不同响应,因此“使用某些随机函数预先排序”选项不起作用。
先统计所有记录:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"<your entity name>"];
NSUInteger count = [context countForFetchRequest:request error:NULL];
Run Code Online (Sandbox Code Playgroud)
使用fetchOffset:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"<your entity name>"];
request.fetchLimit = 1;
request.fetchOffset = arc4random_uniform(count);
NSArray *result = [context executeFetchRequest:request error:NULL];
Run Code Online (Sandbox Code Playgroud)
重复 N 次以获得所需数量的对象。
| 归档时间: |
|
| 查看次数: |
660 次 |
| 最近记录: |