苹果swift开发之建立自己的框架-1

苹果swift开发之建立自己的框架-1

为什么需要自己的框架?

在长期开发应用过程中,你会发现每做一个应用都会遇到同样的问题。随着写代码手速越来越快,大部分开发变成了复制粘贴调坐标、对接口。如果没有自己的一个框架。代码会变得越来越冗余,可读性越来越差。当用其他不熟悉的第三方的时候,定制非常困难。这时候就需要整理一套可定制,一套属于自己的框架。

我的框架需要哪些东西?

当然一次性建立一个自己的框架需要耗费大量的精力,而且一次性建立的框架往往会存在很多不可预料的问题。所以做框架得分好层次一步一步来。那么具体安装什么步骤来写框架呢?

1.数据模型,当下的90%以上的应用需要网络。如果没有一个数据模型类库,你的大量时间要花费在定义数据模型上

@property(nonatomic,retain/assign)NSString *title;

往往写错一个字段就会发生程序奔溃。这时候就需要自己写一个可靠的自动化的模型建立工具
我的做法是通过返回的json数据生成一个如下的模型json
**{
“_model”:“FSCurriculumTotalModel”,
“list”:[
{
“_model”:“FSCurriculumListModel”,
“course_list”:[
{
“_model”:“FSCurriculumModel”,
“course_bg_img”:“s”,
“course_info_id”:“s”,
“course_name”:“s”,
“course_detailed_list”:[
{
“_model”:“FSCourseDetailedTypeModel”,
“course_detailed_id”:“s”,
“course_detailed_type”:“i”
}
]
}

        ],
        "course_type_chapter":"s",
        "course_type_name":"s"
    }
],
"page_count":"i"

}**
修改模型后生成
@interface FSCurriculumTotalModel : RLModel

@property(nonatomic,assign)NSInteger page_count;
@property(nonatomic,retain)NSMutableArray <FSCurriculumListModel *>*list;

@end

@interface FSCurriculumListModel : RLModel

@property(nonatomic,retain)NSString *course_type_name;
@property(nonatomic,retain)NSMutableArray <FSCurriculumModel *>*course_list;
@property(nonatomic,retain)NSString *course_type_chapter;

@end
@interface FSCurriculumModel : RLModel

@property(nonatomic,retain)NSString *course_info_id;
@property(nonatomic,retain)NSString *course_name;
@property(nonatomic,retain)NSMutableArray <FSCourseDetailedTypeModel *>*course_detailed_list;
@property(nonatomic,retain)NSString *course_bg_img;

@end

等多个类,这样只要引入文件就可以直接使用

2.网络框架,当提到网络框架的时候,很多人会用第三方直接使用。这是不可取的,正确的做法应该是封装1-2层。这样可以处理通用性问题,也可以简化接口编写代码工作量。
例如

// 首页文章与文章列表页接口
public func url_article_listTT:RLModel(pages:Int,type:String,success:@escaping ApiSuccess,fail:@escaping ApiFail){
let action:String = “/index.php/Api/User/article_list”
var param:[String:String] = [:];
param[“pages”] = self.intToStr(value: pages)
param[“type”] = type
self.request_pri(action: action, param: param, success: success, fail: fail)
}

2.流程跳转以及控制器框架
做过ios开发的程序员都知道,苹果的UINavgationController 定制性不高,定制UIViewController,UITableViewController写逻辑需要大量的代码,而这些代码往往可以简化。另外,系统自带控制器对于屏幕适配、版本兼容有着各种各样的问题,往往需要多个控制器内写大量的冗余代码。
这时候就需要
a.定制navgationBar
b.控制器内写好可复用的代码
c.修改好界面的跳转流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值