菜鸟教程小白 发表于 2022-12-13 07:27:59

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:&amp;error]) {
      // Update to handle the error appropriately.
      NSLog(@&#34;Unresolved error %@, %@&#34;, error, );
      exit(-1);// Fail
    }


}

- (NSFetchedResultsController *)fetchedResultsController {

    if (_fetchedResultsController != nil) {
      return _fetchedResultsController;
    }

    NSFetchRequest *fetchRequest = [ init];
    NSEntityDescription *entity = [NSEntityDescription
      entityForName:@&#34;FailedBankInfo&#34; inManagedObjectContext:managedObjectContext];
    ;

    NSSortDescriptor *sort = [
      initWithKey:@&#34;details.closeDate&#34; ascending:NO];
    ];

    ;

    NSFetchedResultsController *theFetchedResultsController =
      [ initWithFetchRequest:fetchRequest
            managedObjectContext:managedObjectContext sectionNameKeyPath:nil
            cacheName:@&#34;Root&#34;];
    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:@&#34;%@, %@&#34;,
      entity.city, entity.state];
}

- (UITableViewCell *)tableView:(UITableView *)tableView
    cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @&#34;Cell&#34;;

    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]
查看完整版本: ios - 如何在 iOS 应用程序上同步 UITableView 滚动和 CoraData 获取?