我用下面的方法插入對象插入到核心數據將數據添加到核心數據,但得到無回
-(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