ios - 如何在 iOS 应用程序上同步 UITableView 滚动和 CoraData 获取?
<p><p>我想实现下面的功能,你能帮帮我吗</p>
<p>我的应用程序中有核心数据库。在该数据库中,一个模型 <code>CourseEvents</code> 包含超过 150000 条记录,每条记录有大约 12 个字段。</p>
<p>每个记录一个 <code>UITableViewCell</code> 的值。</p>
<p>但我不想在单个获取请求中获取所有记录。想要根据 <code>UITableView</code> 滚动获取一些 <code>N</code> 条记录。</p>
<p>例子:</p>
<p>当 TableView 第一次加载时想要获取 200 条记录,每当用户滚动 <code>UITableView</code> 时需要获取下一个 200 条记录,就像需要根据 <code> 的滚动从模型中获取数据>UITableview</code>.</p>
<p>我怎样才能做到这一点。请帮助..... </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>如果我正确理解您的问题,当您最初加载 View 时,您只想获取 200 条记录,而在 tableView Scroll 上,您想要获取下一个 200 条记录,依此类推。您正在使用核心数据,然后在 <a href="https://developer.apple.com/library/ios/documentation/CoreData/Reference/NSFetchedResultsController%5fClass/Reference/Reference.html" rel="noreferrer noopener nofollow">NSFetchedResultsController</a> 的帮助下更容易获取记录.只需将 <code>setFetchBatchSize</code> 设置为您想要获取的任何记录(20 也应该适合您的情况)。网上有很多例子,也有很棒的苹果 sample 。这是<a href="https://developer.apple.com/library/ios/samplecode/CoreDataBooks/Introduction/Intro.html#//apple%5fref/doc/uid/DTS40008405" rel="noreferrer noopener nofollow">CoreDataBooks</a>的链接例子。这太棒了<a href="http://www.raywenderlich.com/999/core-data-tutorial-for-ios-how-to-use-nsfetchedresultscontroller" rel="noreferrer noopener nofollow">tutorial</a>关于如何使用 NSFetchedResultsController。最后 <a href="https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdBasics.html#//apple%5fref/doc/uid/TP40001650-TP1" rel="noreferrer noopener nofollow">Core Data Programming guide</a>有没有你的帮助。这是关于如何使用 NSFetchedResultController 的示例代码</p>
<pre><code>- (void)viewDidLoad {
;
NSError *error;
if (![ performFetch:&error]) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error %@, %@", error, );
exit(-1);// Fail
}
}
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [ init];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"FailedBankInfo" inManagedObjectContext:managedObjectContext];
;
NSSortDescriptor *sort = [
initWithKey:@"details.closeDate" ascending:NO];
];
;
NSFetchedResultsController *theFetchedResultsController =
[ initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext sectionNameKeyPath:nil
cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section {
idsectionInfo =
[ objectAtIndex:section];
return ;
}
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {
EntityName *entity = ;
cell.textLabel.text = entity.name; //just example
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@, %@",
entity.city, entity.state];
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell =
;
// Set up the cell...
;
return cell;
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 如何在 iOS 应用程序上同步 UITableView 滚动和 CoraData 获取?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/23054560/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/23054560/
</a>
</p>
页:
[1]