manage封装一个网络请求

用manage封装一个请求类, 把网络请求写在manage里, 然后在model里完成数据解析

网络请求代码

- (void)postNowData:(successful)result {
    NSString *str = [NSString stringWithFormat:@"%s/v2/movie/in_theaters", nowHttp];
    NSURL *url = [NSURL URLWithString:str];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSURLSession *session = [NSURLSession sharedSession];
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        if (error == nil) {
            NSDictionary *nowDictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
            DBModel *allData = [[DBModel alloc] initWithDictionary:nowDictionary error:nil];
//            DBNowModel *nowData = [[DBNowModel alloc] init];
//            nowData = allData.subjects[0];
            NSInteger i = [allData.subjects count];
            result(allData, i);
        } else {
            NSLog(@"FALSE");
        }
    }];
    [dataTask resume];
}

manage的创建使用单例模式

  1. 在iOS开发过程中,需要使用到一些全局变量以及管理方法,可以将这些变量以及方法封装在一个管理类中,这是符合MVC开发模式的,这就需要使用单例(singleton)。

  2. 使用单例模式的变量在整个程序中只需要创建一次,而它生命周期是在它被使用时创建一直到程序结束后进行释放的,类似于静态变量,所以我们需要考虑到它的生命周期,唯一性以及线程安全。在这里,我们需要实用GCD来实现单例模式:

(保证线程安全, 不能确定代码的执行顺序,线程是不安全的)

代码实现

+ (instancetype)sharedManger {
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        if (manger == nil) {
            manger = [[DBManger alloc] init];
        }
    });
    return manger;
}

JSONModel实现数据解析, 写在Model里

代码实现

#import "JSONModel.h"

NS_ASSUME_NONNULL_BEGIN


//
//
@protocol DBNowModel
@end
@protocol DBSubjectModel
@end
@protocol RatingModel
@end
@protocol ImageModel
@end

@interface ImageModel : JSONModel
@property NSString* medium;
@end

@interface RatingModel : JSONModel
@property NSString* average;
@end

@interface DBNowModel : JSONModel
@property NSString* title;
@property RatingModel* rating;
@property ImageModel* images;
@end

@interface DBModel : JSONModel
@property NSArray<DBNowModel>* subjects;
@end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MindManage是一款功能强大的思维导图软件,它可以帮助我们整理和管理计算机网络相关的思维。通过创建一个网络思维导图,我们可以更清晰地组织和展示与计算机网络相关的概念、原理、技术和实践等内容。 首先,在MindManage中,我们可以使用各种形状、图标、颜色和连接线等元素来创建节点,表示我们想要表达的各个概念或主题。这些节点可以表示不同的计算机网络组件,如服务器、路由器、交换机、防火墙等。通过连接线,我们可以准确地表示各个组件之间的关系,如连接和通信。 其次,MindManage还支持在节点上添加注释、备注、超链接等信息。这些附加信息可以用于进一步解释和补充计算机网络中的相关概念和知识。我们可以添加连接到具体的技术文档、网站资源或学术论文等,使得我们可以更深入地了解计算机网络的相关内容。 此外,MindManage还支持节点的分组和折叠功能。这样,我们可以将相关的节点合并成一个组,以便更好地组织和管理我们的思维导图。对于计算机网络而言,我们可以按照不同的主题或模块来分组,如网络拓扑、协议、安全等。这样一来,我们可以更轻松地浏览和查看我们所建立的网络思维导图的各个部分。 总之,MindManage这一强大的思维导图软件可以帮助我们有效地整理和管理计算机网络相关的思维。通过创建一个网络思维导图,我们可以更系统、更清晰地组织和展示与计算机网络相关的概念和知识,加深我们对计算机网络的理解,并为我们的网络学习和工作提供有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值