美文网首页
iOS-数据缓存

iOS-数据缓存

作者: 亦晴工作室 | 来源:发表于2016-08-25 11:12 被阅读21次
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.isRefresh = NO;
        if([[NSFileManager defaultManager] fileExistsAtPath:self.path])
        {
            [self loadDataFromFile];
        }
        else
        {
            [self loadDataFromServer];
        }
    }
    
    
    #pragma mark -- 从本地加载
    - (void)loadDataFromFile
    {
        NSData *fileData = [NSData dataWithContentsOfFile:self.path];
        NSDictionary *objects = [NSJSONSerialization JSONObjectWithData:fileData options:NSJSONReadingMutableContainers error:nil];
        if(!objects)
        {
            return;
        }
     
    //    if(self.isRefresh == NO)
    //    {
    //        [self.data removeAllObjects];
    //    }
         
        [self.data removeAllObjects];
    
    
        NSArray *dataArray = objects[@"data"];
        for(id node in dataArray)
        {
            // 不同的Model类
            self.obj = [self createDataWithJsonNode:node];
            [self.data addObject:self.obj];
        }
        self.isRefresh = NO;
        
    }
    
    
    #pragma mark -- 从网络加载
    - (void)loadDataFromServer
    {
        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
        [manager GET:self.url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
            [self.tableView.header endRefreshing];
            [self.tableView.footer endRefreshing];
            if (responseObject) {
                // 把此文件路径下的内容全部删掉
                [[NSFileManager defaultManager] removeItemAtPath:self.path error:nil];
                
                // 存盘
                [operation.responseData writeToFile:self.path atomically:NO];
                [self loadDataFromFile];
                
                [self.tableView reloadData];
            }
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            
            NSLog(@"下载数据失败...");
            [self.tableView.header endRefreshing];
            [self.tableView.footer endRefreshing];
        }];
    }
    

    相关文章

      网友评论

          本文标题:iOS-数据缓存

          本文链接:https://www.haomeiwen.com/subject/rqrosttx.html