打算練手做一個(gè)iOS知乎日?qǐng)?bào),邊做邊學(xué),在此記錄一點(diǎn)在開(kāi)發(fā)過(guò)程中遇到的問(wèn)題
用pod進(jìn)行項(xiàng)目依賴管理,目前主要是用到了這樣的幾個(gè)框架
- AFNetworking 網(wǎng)絡(luò)請(qǐng)求
- MJExtension 字典轉(zhuǎn)模型
- SDAutoLayout 用于布局
- SDWebImage 圖片的管理
第一次使用pod,項(xiàng)目剛開(kāi)始的時(shí)候就是安裝pod,參考了
安裝cocoaPods
記錄一些坑和一些小習(xí)慣
寫(xiě)一個(gè)全局的pch文件,寫(xiě)上常用的頭文件和宏定義,比如獲取屏幕的尺寸等
遇到的第一個(gè)坑,因?yàn)闆](méi)有使用過(guò)AFN這個(gè)框架,所以在使用的時(shí)候還是出現(xiàn)了一點(diǎn)點(diǎn)問(wèn)題
#pragma mark - 獲取網(wǎng)絡(luò)數(shù)據(jù)
-(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");
}];
}
在獲取數(shù)據(jù)成功以后就應(yīng)該進(jìn)行模型的賦值!
//獲取網(wǎng)絡(luò)數(shù)據(jù)
[self getLatestNews];
//AFN是異步的,所以下面的會(huì)先執(zhí)行,就成了nil
//self.topView.models = self.model.top_stories;
這樣的做法應(yīng)該也只有我這樣的菜雞能想到,所以模型的賦值一定要在success
那個(gè)block里面完成,否則就會(huì)出現(xiàn)模型一直是nil的情況