表视图控制器不显示更新的核心数据值
Posted
技术标签:
【中文标题】表视图控制器不显示更新的核心数据值【英文标题】:Table View Controller doesn't show updated core data values 【发布时间】:2014-04-15 20:00:49 【问题描述】:使用 TVC 和核心数据 tableview 控制器从头开始。
我已经在 viewdidload 中实现了拉动刷新。问题是当我使用 sqllite 更新核心数据时,即使我调用[self.tableView reloadData];
我的 MasterViewController.h:
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
@interface MasterViewController : UITableViewController <NSFetchedResultsControllerDelegate>
@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@end
还有我的 MasterViewController.m(来自 Apple 模板):
#import "MasterViewController.h"
@interface MasterViewController ()
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath;
@end
@implementation MasterViewController
- (void)viewDidLoad
[super viewDidLoad];
self.navigationItem.leftBarButtonItem = self.editButtonItem;
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(insertNewObject:)];
self.navigationItem.rightBarButtonItem = addButton;
// Initialize Refresh Control
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
// Configure Refresh Control
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
// Configure View Controller
[self setRefreshControl:refreshControl];
- (void)refresh:(id)sender
NSLog(@"Refreshing View ...");
// End Refreshing
[(UIRefreshControl *)sender endRefreshing];
[self.tableView reloadData];
感谢您的帮助!!
【问题讨论】:
行 NSLog(@"Refreshing View...");被叫?如果是这样,我认为我们将需要您的 cellForRowAtIndexPathMethod 来提供答案。 是的,它被称为。忘记在刷新过程中添加提取! 【参考方案1】:我没有看到任何更新数据的代码部分。
您在 UITableView 上调用“reloadData”这一事实不会获取任何新数据,它只会再次调用您实现的数据源协议调用(numberOfSectionsInTableView、numberOfRowsInSection、cellForRowAtIndexPath 等)。所以当拉动刷新控件时,获取新数据,然后调用“reloadData”。
【讨论】:
实际上,我没有看到任何获取。在刷新过程中添加[NSFetchedResultsController deleteCacheWithName:nil]; NSError *error = nil; [self.fetchedResultsController performFetch:&error];
就像一个魅力以上是关于表视图控制器不显示更新的核心数据值的主要内容,如果未能解决你的问题,请参考以下文章