美文网首页
菜鸡的iOS项目实战

菜鸡的iOS项目实战

作者: 西土城小羊 | 来源:发表于2017-03-06 18:46 被阅读77次

    打算练手做一个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项目实战

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