菜鸡的iOS项目实战

打算练手做一个iOS知乎日报,边做边学,在此记录一点在开发过程中遇到的问题

用pod进行项目依赖管理,目前主要是用到了这样的几个框架

  • AFNetworking 网络请求
  • MJExtension 字典转模型
  • SDAutoLayout 用于布局
  • SDWebImage 图片的管理

第一次使用pod,项目刚开始的时候就是安装pod,参考了
安装cocoaPods

记录一些坑和一些小习惯

  1. 写一个全局的pch文件,写上常用的头文件和宏定义,比如获取屏幕的尺寸等

  2. 遇到的第一个坑,因为没有使用过AFN这个框架,所以在使用的时候还是出现了一点点问题

#pragma mark - 获取网络数据
-(void)getLatestNews{
    AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
    [session GET:@"http://news-at.zhihu.com/api/4/news/latest" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
        [XYLatestNewsItem mj_setupObjectClassInArray:^NSDictionary *{
            return @{
                        @"stories": @"XYStoryItem",
                        @"top_stories":@"XYTopStoryItem"
                    };
        }];
         //model是最新新闻模型
        XYLatestNewsItem *model = [XYLatestNewsItem        mj_objectWithKeyValues:responseObject];
        self.topView.models = model.top_stories;
        self.storyArr = [NSArray arrayWithArray:model.stories];
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        NSLog(@"FAIL TO GET DATA FROM SERVER");
    }];
}

在获取数据成功以后就应该进行模型的赋值!

  //获取网络数据
    [self getLatestNews];
    
    //AFN是异步的,所以下面的会先执行,就成了nil
    //self.topView.models = self.model.top_stories;

这样的做法应该也只有我这样的菜鸡能想到,所以模型的赋值一定要在success那个block里面完成,否则就会出现模型一直是nil的情况

你可能感兴趣的:(菜鸡的iOS项目实战)