http://blog.youkuaiyun.com/rhljiayou/article/details/18037729
//插入数据
- (void)insertCoreData:(NSMutableArray*)dataArray setClassId:(NSInteger)classIdSeclect
{
NSManagedObjectContext *context = [self managedObjectContext];
for (News *info in dataArray) {
News *newsInfo = [NSEntityDescription insertNewObjectForEntityForName:TableName inManagedObjectContext:context];
newsInfo.newsId = info.newsId;
newsInfo.title = info.title;
newsInfo.summary = info.summary;
newsInfo.siteName = info.siteName;
newsInfo.classNames = info.classNames;
newsInfo.mediaClass=info.mediaClass;
newsInfo.createTime=info.createTime;
newsInfo.newsMes=info.newsMes;
newsInfo.classIds=[NSString stringWithFormat:@"%ld",classIdSeclect];
NSError *error;
if(![context save:&error])
{
NSLog(@"不能保存:%@",[error localizedDescription]);
}
}
}
//查询
- (NSMutableArray*)selectData:(int)pageSize andOffset:(int)currentPage andClassId:(NSInteger)classIdSeclect
{
NSManagedObjectContext *context = [self managedObjectContext];
// 限定查询结果的数量
//setFetchLimit
// 查询的偏移量
//setFetchOffset
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// [fetchRequest setFetchLimit:pageSize];
// [fetchRequest setFetchOffset:currentPage];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"(classIds=%d)",classIdSeclect]];
NSEntityDescription *entity = [NSEntityDescription entityForName:TableName inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSError *error;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
NSMutableArray *resultArray = [NSMutableArray array];
for (News *info in fetchedObjects) {
[resultArray addObject:info];
}
return resultArray;
}
//删除
-(void)deleteData:(NSInteger)classIdSeclect
{
NSManagedObjectContext *context = [self managedObjectContext];
NSEntityDescription *entity = [NSEntityDescription entityForName:TableName inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setIncludesPropertyValues:NO];
[request setEntity:entity];
[request setPredicate:[NSPredicate predicateWithFormat:@"(classIds=%d)",classIdSeclect]];
NSError *error = nil;
NSArray *datas = [context executeFetchRequest:request error:&error];
if (!error && datas && [datas count])
{
for (NSManagedObject *obj in datas)
{
[context deleteObject:obj];
}
if (![context save:&error])
{
NSLog(@"error:%@",error);
}
}
}
=================
- (void)insertCoreData:(NSMutableArray*)dataArray setClassId:(NSInteger)classIdSeclect
{
NSManagedObjectContext *context = [self managedObjectContext];
for (News *info in dataArray) {
News *newsInfo = [NSEntityDescription insertNewObjectForEntityForName:TableName inManagedObjectContext:context];
newsInfo.newsId = info.newsId;
newsInfo.title = info.title;
newsInfo.summary = info.summary;
newsInfo.siteName = info.siteName;
newsInfo.classNames = info.classNames;
newsInfo.mediaClass=info.mediaClass;
newsInfo.createTime=info.createTime;
newsInfo.newsMes=info.newsMes;
newsInfo.classIds=[NSString stringWithFormat:@"%ld",classIdSeclect];
NSError *error;
if(![context save:&error])
{
NSLog(@"不能保存:%@",[error localizedDescription]);
}
}
}
//查询
- (NSMutableArray*)selectData:(int)pageSize andOffset:(int)currentPage andClassId:(NSInteger)classIdSeclect
{
NSManagedObjectContext *context = [self managedObjectContext];
// 限定查询结果的数量
//setFetchLimit
// 查询的偏移量
//setFetchOffset
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// [fetchRequest setFetchLimit:pageSize];
// [fetchRequest setFetchOffset:currentPage];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"(classIds=%d)",classIdSeclect]];
NSEntityDescription *entity = [NSEntityDescription entityForName:TableName inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSError *error;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
NSMutableArray *resultArray = [NSMutableArray array];
for (News *info in fetchedObjects) {
[resultArray addObject:info];
}
return resultArray;
}
//删除
-(void)deleteData:(NSInteger)classIdSeclect
{
NSManagedObjectContext *context = [self managedObjectContext];
NSEntityDescription *entity = [NSEntityDescription entityForName:TableName inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setIncludesPropertyValues:NO];
[request setEntity:entity];
[request setPredicate:[NSPredicate predicateWithFormat:@"(classIds=%d)",classIdSeclect]];
NSError *error = nil;
NSArray *datas = [context executeFetchRequest:request error:&error];
if (!error && datas && [datas count])
{
for (NSManagedObject *obj in datas)
{
[context deleteObject:obj];
}
if (![context save:&error])
{
NSLog(@"error:%@",error);
}
}
}
//把数据写到数据库
[coreManager deleteData:classIdString];
[coreManager insertCoreData:self.infos setClassId:classIdString];
[self.tableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//从本地读取数据
self.infos=[coreManager selectData:10 andOffset:0 andClassId:classIdString];
[self.tableView reloadData];
[coreManager deleteData:classIdString];
[coreManager insertCoreData:self.infos setClassId:classIdString];
[self.tableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//从本地读取数据
self.infos=[coreManager selectData:10 andOffset:0 andClassId:classIdString];
[self.tableView reloadData];