菜鸡的iOS项目实战
2017-03-06 本文已影响77人
西土城小羊
打算练手做一个iOS知乎日报,边做边学,在此记录一点在开发过程中遇到的问题
用pod进行项目依赖管理,目前主要是用到了这样的几个框架
- AFNetworking 网络请求
- MJExtension 字典转模型
- SDAutoLayout 用于布局
- SDWebImage 图片的管理
第一次使用pod,项目刚开始的时候就是安装pod,参考了
安装cocoaPods
记录一些坑和一些小习惯
-
写一个全局的pch文件,写上常用的头文件和宏定义,比如获取屏幕的尺寸等
-
遇到的第一个坑,因为没有使用过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的情况