我正在尝试使用 Core Data 编写应用程序,并且我已经能够成功地读取和写入核心数据数据库。但是,如果我在一个视图控制器中写入数据库,我的其他视图控制器将不会看到更改,直到应用程序关闭然后再次重新打开。这真是令人沮丧。我不完全确定如何使刷新- (void)refreshObject:(NSManagedObject *)object mergeChanges:(BOOL)flag
方法起作用。如何获得对我的托管对象的引用?
无论如何,这是我用来读回数据的代码。这是在 viewDidLoad 方法中。
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Website" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"siteName" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptor release];
[sortDescriptors release];
NSError *error = nil;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if(mutableFetchResults == nil) {
//Handle the error
}
[self setNewsTitlesArray:mutableFetchResults];
[mutableFetchResults release];
[request release];
[newsSourcesTableView reloadData];
提前感谢您的帮助!