Skip to content

yangxlei/MyIOSLib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MyIOSLib: 整理自己 iOS 类库:
实现 Data, 网络,数据,图片等一系列功能的整合

各类功能及调用说明:

JsonUtils:

封装关于 Json 的所有操作。应用内所有涉及到 Json 的操作都必须调用其中的方法。所有涉及到 Dictionary,Array 的操作,都会自动转换为 NSMutableXXX; 涉及到基础类型的保存和取值也调用相应的方法


APIManager:

处理网络请求的工具类, 默认并发请求为 5 个,超过 5 个其他的请求都会转为等待状态。对外调用不需要关心这个。
各个方法:

  1. - (NSInteger)requestAPIWithGet:(NSString *)api callback:(apiRequestFinishCallback)callback Get 方式请求 API
  2. - (NSInteger)requestAPIWithPost:(NSString *)api postBody:(NSDictionary *)postBody callback:(apiRequestFinishCallback)callback Post 方式请求 API
  3. - (NSInteger)requestDownloadFile:(NSString *)api progressCallback:(apiRequestProgressCallback)progress finishCallback:(apiRequestFinishCallback)callback 请求下载文件
  4. - (NSInteger)requestUploadFile:(NSString *)api postBody:(NSDictionary *)postBody file:(NSDictionary *)file progressCallback:(apiRequestProgressCallback)progress finishCallback:(apiRequestFinishCallback)callback 请求上传文件
  5. - (void)cancelRequest:(NSInteger)taskId 取消正在处理的请求任务

返回的回调 block 中会有 HTTPResult 对象。其中 code 表示此次请求处理的返回码,等于 SUCCESSFULL 表示正常处理成功。 data 为处理完成返回的数据

PS: requestXXX 方法会返回当前处理任务的 ID。所以在界面正常退出(如:viewDidDisAppear, dealloc)的地方,应该主动 cancelRequest 这次任务, 清除回收对应的资源


BJUserAccount:

用户账户, 在 APP 内部会模拟两个账户, 一个匿名 anonymous 账户,一个用户登录后使用的 main 账户. 两个账户底下会有各自的 authToken;在 APIManager 请求网络时,如果已经登录, 会使用 main account,如果没有登录,使用 anonymous account; 上层在正常请求时,不需要关心"我"当前是否已经登录了.
Common 工具类是个单例,从中获取 anonymous 和 main account 的实例

BJData:

所有数据模型的基类

    对数据进行监听,以下两个方法必须对应调用,比如在界面中 alloc 添加监听, dealloc 中移除监听
  1. addDelegate 添加对数据的监听
  2. removeDelegate 移除对数据的监听
  3. saveCache 通过设置 getCacheKey,将数据缓存到本地
  4. loadCache 将本地缓存的数据加载到当前 data 中
  5. getCacehKey 这个方法返回换到到本地的文件名,如果返回 nil,表示不缓存
数据中对应的操作,都会在 dataEvent 回调方法中接收到


BJSimpleData

包含成员变量 data, 是一个字典。对应的实际值都会存在于这个 data 中。

  1. refresh 方法, 刷新操作。创建完实例之后,调用 refresh 方法获取最新的数据, 刷新完成后会自动 saveCache
  2. doRefreshOperation 这个方法由子类实现,在模板文件中有调用方法。执行具体的刷新操作


BJSimpleCacheData

继承自 BJSimpleData, 在其基础上加了 dataCacheTime, 设置一个过期时间。 如设置 1天 的过期时间,那么在上次保存之后,1天内如果再次刷新,请求不会发送


BJListData

列表数据类型

  1. refresh
  2. getMore
  3. addItem
  4. removeItem
  5. saveItem

About

iOS library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages