MACProject,使用 Objective-C 整理的一套 iOS 轻量级框架

2022年01月16日 阅读数:2
这篇文章主要向大家介绍MACProject,使用 Objective-C 整理的一套 iOS 轻量级框架,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

 


这是使用 Objective-C 整理的一套 iOS 轻量级框架,内部包含大量或本身整理或修改自网络的 Category 、Utils、DataManager、Macros & UIComponents 旨在快速构建中小型 iOS App,并尝试用其整理了个 MACProject 样例以来抛砖引玉,愿与大犇们相互学习交流,不足之处望批评指正, 更欢迎 Star。ios

MACProject,使用 Objective-C 整理的一套 iOS 轻量级框架_数据


目录结构

基于MVC:对经常使用控件、经常使用扩展类、数据缓存、网络请求、工具类、经常使用动画进行封装或二次封装;缓存


  1. 对包括 UIImageView、UILabel、UIButton、UINavgationBar、UINavgationController、UITableView、UITextView、UISearchBar、UIViewController 等在内的经常使用控件及其扩展类进行了整理,其中对经常使用的数据加载、提示语、AlertView、sheetView也进行了一键集成;
  2. 对包括 NSData、NSDate、NSString、NSArray、NSDictionary、NSNumber、NSObject 等数据类型经常使用的转换或解析方法进行了整理;
  3. 对包括 NSBundle、NSFile、NSFileManger 等数据读取或操做的经常使用方法行了整理;
  4. 对 UIFont、UIColor、UIImage、UIApplication、NSTimer 等也进行了分类整理,保证相关操做简洁高效,经常使用方法一键实现;
  5. 对数据下载(DownLoadManager)、网络请求(BaseService)、GCD、Animation、UserAuth 等也行了简洁的封装。

MACProject,使用 Objective-C 整理的一套 iOS 轻量级框架_ios_02

这里对几个经常使用控件源代码进行简单的说明: 基于AF网络请求库的二次封装,根据状态码递归解析请求的加密数据;接口类型包括: 普通访问接口、带数据缓存接口、带有网络提示、带有上传文件等;网络

 #import <Foundation/Foundation.h>
/**
* HTTP访问回调
*
* @param urlString 状态码 0 访问失败 200 正常 500 空 其余异常
* @param result 返回数据 nil 为空
* @param error 错误描述
*/
typedef void(^ResultBlock)(NSInteger stateCode, NSMutableArray* result, NSError *error);
//block不是self的属性或者变量时,在block内使用self也不会循环引用:

@interface BaseService : NSObject

/**
* 普通的访问请求(有提示,带判断网络状态)
*
* @param URLString 接口地址
* @param parameters 字典参数
* @param requestBlock 回调函数
*/
+ (void)POST:(NSString *)URLString parameters:(id)parameters result:(ResultBlock)requestBlock;
/**
* 普通的访问请求(无提示,不带判断网络状态)
*
* @param URLString 接口地址
* @param parameters 字典参数
* @param requestBlock 回调函数
*/
+ (void)POSTWithNormal:(NSString *)URLString parameters:(id)parameters result:(ResultBlock)requestBlock;

/**
* 访问请求(有提示带缓存,带判断网络状态)
*
* @param URLString 请求地址
* @param parameters 请求参数
* @param requestBlock 请求回调
*/
+ (void)POSTWithCache:(NSString *)URLString parameters:(id)parameters completionBlock:(ResultBlock)requestBlock;

/**
* 无提示的访问请求(带缓存,带判断网络状态)
*
* @param URLString 请求地址
* @param parameters 请求参数
* @param requestBlock 请求回调
*/
+(void)POSTWithCacheNormal:(NSString *)URLString parameters:(id)parameters completionBlock:(ResultBlock)requestBlock cacheBlock:(ResultBlock)cacheBlock;
/**
* 上传多媒体文件接口
*
* @param URLString 请求地址
* @param parameters 请求参数
* @param mediaDatas 多媒体数据 图片传 UIImage 语音传url字符串地址
* @param requestBlock 请求回调
*/
+(void)POSTWithFormDataURL:(NSString *)URLString parameters:(id)parameters mediaData:(NSMutableArray *)mediaDatas completionBlock:(ResultBlock)requestBlock;

 


同时对 UITableView 空白页文字、空白页图片、上拉下拉事件等进行了高度封装,命名为MACTableView,使用简 框架

首页

仿闲鱼同城界面:

GCD、CollectionView、Xib 约束、Frame 约束、AutoLayout 代码约束简单应用,抛砖引玉;ide

MACProject,使用 Objective-C 整理的一套 iOS 轻量级框架_ios_03

城市模糊查询:

定位 、 KMP & SearchTree 搜索实现快速数据检索 与 系统匹配不同的感觉;函数

MACProject,使用 Objective-C 整理的一套 iOS 轻量级框架_ios_04

朋友圈

仿QQ通讯录:

高仿QQ聊天通信录,人员分组:工具

MACProject,使用 Objective-C 整理的一套 iOS 轻量级框架_数据_05

高仿朋友圈 & QQ空间

MACProject,使用 Objective-C 整理的一套 iOS 轻量级框架_ios_06

个人消息

MACProject,使用 Objective-C 整理的一套 iOS 轻量级框架_ios_07

云周边(暂未开放)

发现(动画&控件)

MACProject,使用 Objective-C 整理的一套 iOS 轻量级框架_封装_08

 ​




POPULAR ARTICLES 学习

 ​

 ​






MACProject,使用 Objective-C 整理的一套 iOS 轻量级框架_ios_09关注本公众号,学习 iOS 开发点击 动画