设为首页 加入收藏

TOP

Core Data with Mantle(三)
2015-07-24 06:11:32 来源: 作者: 【 】 浏览:32
Tags:Core Data with Mantle
sitManagedObject=[self getManagedObject:mtlModel
  • error:error];
  • if (exsitManagedObject!=nil) {
  • [self.managedObjectContext deleteObject:exsitManagedObject];
  • [self.managedObjectContext save:error];
  • };
  • //-----Need Add Remove the Entity First END-----------
  • NSManagedObject *managedObject = [MTLManagedObjectAdapter
  • managedObjectFromModel:mtlModel
  • insertingIntoContext:self.managedObjectContext
  • error:error];
  • if (managedObject==nil) {
  • NSLog(@"[NSManagedObject] Error:%@",*error);
  • return NO;
  • }
  • if (![self.managedObjectContext save:error]) {
  • NSLog(@"[self.managedObjectContext] Error:%@",*error);
  • return NO;
  • };
  • return YES;
  • };
  • //从coredata中提取出MTLModel
  • -(MTLModel *)getMTLmodel:(MTLModel *)mtlModel
  • error:(NSError *__autoreleasing *)error{
  • NSManagedObject *managedObject=[self getManagedObject:mtlModel error:error];
  • MTLModel *mrlMotel=[[MTLModel alloc] init];
  • mrlMotel = [MTLManagedObjectAdapter modelOfClass:[mtlModel class]
  • fromManagedObject:managedObject error:error];
  • if (error) {
  • NSLog(@"[mrlMotel] Error:%@",*error);
  • }
  • return mrlMotel;
  • };
  • //从coredata中获取已存的ManagedObject
  • -(NSManagedObject *)getManagedObject:(MTLModel *)mtlModel
  • error:(NSError *__autoreleasing *)error{
  • NSString *entityName=[[mtlModel class] managedObjectEntityName];
  • //获取entity中对象数量
  • NSFetchRequest *requestCount=[NSFetchRequest fetchRequestWithEntityName:entityName];
  • NSUInteger count=[self.managedObjectContext countForFetchRequest:requestCount
  • error:error];
  • NSLog(@"count result:%d",count);
  • NSLog(@"sortDescriptor result:%@",[[mtlModel class] sortDescriptor]);
  • //获取entity中第一个对象.这个对象必须存在且唯一。
  • if (count==1) {
  • NSFetchRequest *request=[[NSFetchRequest alloc] init];
  • [request setEntity:[NSEntityDescription entityForName:entityName
  • inManagedObjectContext:self.managedObjectContext]];
  • NSSortDescriptor *sort=[[mtlModel class] sortDescriptor];
  • NSArray *sortDes=[[NSArray alloc] initWithObjects:sort, nil nil];
  • [request setSortDescriptors:sortDes];
  • NSArray *getObject=[self.managedObjectContext
  • executeFetchRequest:request
  • error:error];
  • return [getObject objectAtIndex:0];
  • }
  • return nil;
  • }
  • //从文件系统中删除sqlite文件
  • -(bool)deleteAllEntities{
  • bool status=NO;
  • NSError *error;
  • @try{
  • [[NSFileManager defaultManager] removeItemAtPath:[self storeURL].path
  • error:&error];
  • status=YES;
  • }
  • @catch (NSException *exception) {
  • status=NO;
  • }
  • @finally {
  • return status;
  • }
  • }
  • @end

    3.后台执行程序

    [objc] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. - (void)loadBannerList:(void (^)(NSArray *bannerList, NSError *error))block {
    2. NSParameterAssert(block);
    3. [self POST:@"webresources/homePage"
    4. parameters:nil
    5. resultClass:BannerWrapper.class
    6. resultKeyPath:nil
    7. completion:^(AFHTTPRequestOperation *operation, id responseObject, NSError *error) {
    8. //-----------------------Persistence DEMO---------------------
    9. //If network error, get data from CoreData, else save data into CoreData
    10. if (!error) {
    11. NSError *err;
    12. Persistence *persistence=[[Persistence alloc] init];
    13. BOOL save=[persistence saveMTLModel:responseObject error:&err];
    14. if (save==NO) {
    15. NSLog(@"Save ERROR!");
    16. }
    17. }else{
    18. NSError *err;
    19. Persistence *persistence=[[Persistence alloc] init];
    20. BannerWrapper *resObject=[[BannerWrapper alloc] init];
    21. BannerWrapper *object=[[B
  • 首页 上一页 1 2 3 4 下一页 尾页 3/4/4
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    分享到: 
    上一篇c++参数传递 下一篇uva 10006 数论入门题

    评论

    帐  号: 密码: (新用户注册)
    验 证 码:
    表  情:
    内  容: