我正在尝试使用核心数据,并且已经能够存储我的类“Event.m”的记录。一个事件有一个时间戳和一个注释。
但是当我尝试读取表格视图中的所有条目以显示它们时,我看到每个时间戳和注释都是零(调试)。奇怪的是,我得到的数组具有正确的大小(条目数),并且还创建了表行(只有没有可见的注释)。
这是我的一些代码:
- (void)fetchRecords {
// Define our table/entity to use
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:self.managedObjectContext];
// Setup the fetch request
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
// Define how we will sort the records
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"timeStamp" ascending:NO];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
[request setSortDescriptors:sortDescriptors];
// Fetch the records and handle an error
NSError *error;
NSMutableArray *mutableFetchResults = [[self.managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (!mutableFetchResults) {
NSLog(@"Error fetching data.");
}
// Save our fetched data to an array
[self setEventArray: mutableFetchResults];
NSLog(@"Records found: %i", [eventArray count]);
}
这是我保存对象的地方:
- (void) saveEntry: (NSString *) note
{
Event *event = (Event *)[NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedObjectContext:managedObjectContext];
[event setTimeStamp: [NSDate date]];
[event setNote:@"test"];
NSError *error;
if (![managedObjectContext save:&error]) {
NSLog(@"Could not save entry.");
}
NSLog(@"Entry saved.");
[eventArray insertObject:event atIndex:0];
}
请注意,有两个不同的视图,我从中访问 Core Data。
这就是我在这个视图中得到我的 MOC 的地方:
- (void)viewDidLoad
{
[super viewDidLoad];
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
managedObjectContext = appDelegate.managedObjectContext;
}
我在这里阅读,它可能来自 MOC 本身。这就是我在 SecondViewController.h 中保存变量的方式
#import "Event.h"
#import <CoreData/CoreData.h>
#import "AppDelegate.h"
@interface SecondViewController : UITableViewController {
NSManagedObjectContext *managedObjectContext;
NSMutableArray *eventArray;
}
@property (nonatomic, strong) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, strong) NSMutableArray *eventArray;
- (void) fetchRecords;
@end
在我的 .m 文件中,我有:
@synthesize managedObjectContext, eventArray;
然后我打电话fetchRecords
。
任何想法为什么我有这个问题?