我用下面的方法插入对象插入到核心数据将数据添加到核心数据,但得到无回
-(void)createRecordWithTitle:(NSString *)title finishDate:(NSDate *)finishDate limitCount:(int)limitCount {
[self fetchRecordsIfNecessary] ;
Record *record = [NSEntityDescription insertNewObjectForEntityForName:@"Record" inManagedObjectContext:self.context] ;
record.createdDate = [NSDate date] ;
record.title = title ;
record.finishDate = finishDate;
record.limitCount = limitCount ;
[self.allRecords addObject:record] ;
[self fetchRecordsIfNecessary] ;
for (Record *r in self.allRecords) {
NSLog(@"-->title:%@",r.title) ;
}
}
并采用跟踪方法来获取数据从核心数据回。
-(void) fetchRecordsIfNecessary {
if (!self.allRecords) {
NSFetchRequest *request = [[NSFetchRequest alloc] init] ;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Record" inManagedObjectContext:self.context] ;
[request setEntity:entity] ;
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"createdDate" ascending:NO] ;
[request setSortDescriptors:@[sortDescriptor] ] ;
NSError *error ;
NSArray *result = [self.context executeFetchRequest:request error:&error] ;
// if errors encountered , result is nil , otherwise , it's an valid array
//context will tack result's changes , and will be saved after you call context's save method
if (!result) {
[NSException raise:@"Fetch failed" format:@"%@" , [error localizedDescription]] ;
}
self.allRecords = [[NSMutableArray alloc] initWithArray:result] ;
}
}
我正确设置NSManagedContext,成功添加数据,但是获取所有零数据。谁能帮我?提前致谢。
你怎么知道你是成功添加数据?你是否已经在调试器中逐步了解了实际情况? – Abizern
我发现上下文的插入对象为0后,我添加一个对象到上下文中,但是当我重新查询上下文,仍然有 上下文中的数据,但是零。我不知道为什么。 – Weizhi