Latest 0.7.2
Homepage https://github.com/zhangjiang1203/MyOftenUseTool
License MIT
Platforms ios 8.0, requires ARC
Dependencies AFNetworking, pop, SAMKeychain, SVProgressHUD, YYCache
Frameworks UIKit, MapKit, QuartzCore, Foundation
Authors

Version
License
Platform
Platform

自己常用的一些封装方法和UIKIT,Foundation框架的category添加的方法

Requirements 要求

  • iOS 8+
  • XCode 8+

可以使用Cocoapods进行安装,有关于Cocoapods的安转和使用请参考Cocoapods,

Podfile

在你需要使用的项目中添加Podfile文件,


platform :ios, '8.0'

pod 'MyOftenUseTool'

关于类库的一些使用说明

AFNetworking的封装,添加了YYCache缓存网络数据,网络数据存储在本地,根据请求的URL获取缓存的数据,并返回到相应的Block中,其中的方法参考YYCache的使用方法参考例子中,可以下载测试项目

首先添加的就是关于网络状态的检测,

/*
* 开启网络监测 YES 有网络  NO 没有联网
*/
+ (void)startMonitoring:(void(^)(BOOL isNet))netBlock;

/*
* 关闭网络监测
*/
+ (void)stopMonitoring;

对应的实现如下

+ (void)startMonitoring:(void(^)(BOOL isNet))netBlock{

    [[AFNetworkReachabilityManager sharedManager]startMonitoring];
    [[AFNetworkReachabilityManager sharedManager]setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        [ZJAFNRequestTool shareRequestTool].workStatus = status;
        if (status == AFNetworkReachabilityStatusNotReachable) {
            //跳转到设置URL的地方
            netBlock(NO);
        }else{
            netBlock(YES);
        }
    }];
}

+(void)stopMonitoring{
    [[AFNetworkReachabilityManager sharedManager]stopMonitoring];
}

在文件中添加了请求返回和取消请求的操作,每个请求中返回值 NSURLSessionTask 可以根据这个来取消这个请求,请求中使用了YYCache来缓存对应的URL的请求数据,

/**
不带缓存的get请求
@param urlStr       请求的URL
@param params       请求参数
@param isShow       显示指示符
@param successBlock 成功的回调
@param failBlock    失败的回调
@return 返回的任务队列
*/
+(NSURLSessionTask*)getWithURL:(NSString*)urlStr
                         param:(NSDictionary*)params
                           hud:(BOOL)isShow
                       success:(RequestSuccessBlock)successBlock
                          fail:(RequestFailBlock)failBlock;

/**
带有缓存的get请求
@param urlStr       请求的URL
@param params       请求参数
@param isShow       显示指示符
@param cacheBlock   缓存block
@param successBlock 成功的回调
@param failBlock    失败的回调
@return 返回的任务队列
*/
+(NSURLSessionTask*)getWithURL:(NSString*)urlStr
                         param:(NSDictionary*)params
                           hud:(BOOL)isShow
                         cache:(RequestCache)cacheBlock
                       success:(RequestSuccessBlock)successBlock
                          fail:(RequestFailBlock)failBlock;

取消当前的网络请求的操作

   [ZJAFNRequestTool cancelRequest];

AFN请求中的封装还有post和put以及文件的上传和下载操作

关于HUDHelper类的说明

这个类中涉及的方法使用比较杂,图像绘制,坐标转换,日期转换,判断空字符串和邮箱电话号码的正则表达式判断设置label的行间距,返回图文混排的文本,简单动画设定,计算文本的高度和数组字符串的一些处理方法等方法,具体的请看这个分类中的方法,都有注释的。

关于ZJSystemUtils类的说明

此类中主要是获取一些系统的信息,存储用户登录的账号和密码


/**
*  手机型号  “iPhone 5”,“iPhone 4S”,"iPhone 4"
*/
+(NSString*)deviceString;
/**
*  获取ip地址
*/
+(NSString *)getIPAddress;
/**
*  是否有摄像头使用权限
*
*  @param authorized 有权限回调
*  @param restricted 无权限回调
*/
+(void)videoAuthorizationStatusAuthorized:(void(^)(void))authorized restricted:(void(^)(void))restricted;
/**
*  获取当前的显示的ViewController
*
*  @return 当前的显示的ViewController
*/
+ (UIViewController *)getCurrentViewController;

/**
*  获取当前版本号
*/
+(NSString*)getCurrentVersion;

/**
*  获取历史存储的版本号
*/
+(NSString*)getHistoryVersion;

/**
设置登录状态 0 退出登录  1 登录成功
*/
+(void)setLoginState:(BOOL)state;

/**
获取登录状态 0 没有登录 1 登录
*/
+(BOOL)getLoginState;

/**
*  判断是不是第一次登陆
*/
+(BOOL)judgeIsFirstLogin;

/**
*  存储登录账号的用户名和密码
*/
+(void)saveUserAccount:(NSString*)account password:(NSString*)password;

/**
*  获取用户密码
*/
+(NSString*)getUserPassword;

/**
*  获取用户账号
*/
+(NSString*)getUserAccount;

/**
*  获取设备标示
*/
+(NSString *)getDiviceIdentifier;

#pragma mark -应用程序需要事先申请音视频使用权限
+ (BOOL)requestMediaCapturerAccessWithCompletionHandler:(void (^)(BOOL value, NSError *error))handler;

/**
*  检查app是否有照片操作权限
*/
+(void)getAssetsAuthorizationStatus:(void (^)(BOOL isAuthorize,NSString *errorStr))authorizeBlock;

#pragma mark -获取当前连接的wifi名称

/**
获取当前连接的wifi名称
*/
+(NSString *)getWifiName;

/**
容量转换
@param fileSize 文件大小
@return 返回值
*/
+(NSString *)fileSizeToString:(unsigned long long)fileSize;

/**
获取电池的状态
*/
+(UIDeviceBatteryState)getBatteryStauts;

/**
获取电池的电量,用百分比表示
*/
+(CGFloat)getBatteryQuantity;

具体的实现请点击.m文件查看

UIKit和Foundation+Category类

这两个类中是收集的一些kit和foundation框架中添加的一些拓展类的方法,ZJAlertViewController是我自己封装的一个alertView的一个简单使用


/**
*  设置弹出的alertView,已经适配ios9
*
*  @param title             标题
*  @param message           信息
*  @param cancelButtonTitle 取消按钮,@"",没有取消按钮
*  @param otherButtonTitles 其他按钮,@"",没有确定按钮
*  @param alertBlock        返回的block
*/
+ (void)alertShowTitle:(nullable NSString *)title message:(nullable NSString*)message cancelButtonTitle:(nullable NSString *)cancelButtonTitle otherButtonTitles:(nullable NSString *)otherButtonTitles block:(nullable continueBlock)alertBlock;

/**
*  提示信息 有取消和确定两个按钮
*
*  @param message       内容
*  @param continueBlock 确定按钮的点击事件
*  @param cancelBlock   返回按钮的点击事件
*/
+(void)alertShowWithMsg:(nullable NSString *)message continueBlock:(nullable continueNoParamBlock)continueBlock cancelBlock:(nullable continueNoParamBlock)cancelBlock;

/**
提示信息,只有确定按钮

@param message       内容
@param title         确定按钮的title
@param continueBlock 确定按钮的点击事件
*/
+(void)alertShowWithMsg:(nullable NSString *)message continueTitle:(nullable NSString *)title continueBlock:(nullable continueNoParamBlock)continueBlock;

WaveAnimation 这个移动到项目demo中

这是一个加载等待视图,在网络加载过程中显示,这是在网上看到的一个比较好的例子,自己修改和封装之后更方便使用,原文地址,加载完成之后取消显示,效果如下

波浪显示

显示指示图

/**
开始加载显示视图 nil为空的时候显示在rootView的window上
*/
+(void)startAnimationToView:(UIView*)view;

/**
停止显示视图
*/
+(void)stopAnimation;

Demo

上面的文件都包含在一个测试项目中,可以下载测试项目

证书

RealReachability is released under the MIT license. See LICENSE for details.

最后

欢迎使用,如果在使用中有什么问题请联系我😁😁😁😁

Latest podspec

{
    "name": "MyOftenUseTool",
    "version": "0.7.2",
    "summary": "u81eau5df1u5e38u7528u7684u4e00u4e9bu5c01u88c5u65b9u6cd5u548cUIKITuff0cFoundationu6846u67b6u7684categoryu6dfbu52a0u7684u65b9u6cd5,u91ccu9762u5df2u7ecfu6dfbu52a0u4e86u6700u65b0u7684AFN,pop,SAMKeychainu7b49u4f9du8d56u7684u6846u67b6",
    "description": "u8fd9u662fu6211u81eau5df1u6839u636eu9879u76eeu4e2du5e38u7528u7684u65b9u6cd5u548cu5728u7f51u7edcu4e0au6536u96c6u7684u4e00u4e9bu6bd4u8f83u597du7528u7684iOSu539fu6709u7684u6846u67b6u4e0au6dfbu52a0u7684categoryuff0cu65b9u4fbfu81eau5df1u5728u5f00u53d1u4e2du7684u4f7fu7528uff0cu91ccu9762u5df2u7ecfu6dfbu52a0u4e86u6700u65b0u7684AFN,pop,SAMKeychainu7b49u4f9du8d56u7684u6846u67b6",
    "homepage": "https://github.com/zhangjiang1203/MyOftenUseTool",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "zhangjiang": "[email protected]"
    },
    "source": {
        "git": "https://github.com/zhangjiang1203/MyOftenUseTool.git",
        "tag": "0.7.2"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "MyOftenUseTool/Classes/ZJMethodHeader.h",
    "public_header_files": "MyOftenUseTool/Classes/ZJMethodHeader.h",
    "frameworks": [
        "UIKit",
        "MapKit",
        "QuartzCore",
        "Foundation"
    ],
    "dependencies": {
        "AFNetworking": [
            "~> 3.1.0"
        ],
        "pop": [],
        "SAMKeychain": [],
        "SVProgressHUD": [],
        "YYCache": []
    },
    "requires_arc": true,
    "subspecs": [
        {
            "name": "HUDMethod",
            "source_files": "MyOftenUseTool/Classes/HUDHelper.{h,m}",
            "public_header_files": "MyOftenUseTool/Classes/HUDHelper.h"
        },
        {
            "name": "SystemMethod",
            "source_files": "MyOftenUseTool/Classes/ZJSystemUtils.{h,m}",
            "public_header_files": "MyOftenUseTool/Classes/ZJSystemUtils.h"
        },
        {
            "name": "AFNRequest",
            "source_files": "MyOftenUseTool/AFNRequestManager/*",
            "public_header_files": "MyOftenUseTool/AFNRequestManager/*.h"
        },
        {
            "name": "APPStoreUpdate",
            "source_files": "MyOftenUseTool/AppStoreUpdate/*.{h,m}",
            "public_header_files": "MyOftenUseTool/AppStoreUpdate/*.h"
        },
        {
            "name": "UIKit+Category",
            "source_files": "MyOftenUseTool/UIKit/*.{h,m}",
            "public_header_files": "MyOftenUseTool/UIKit/*.h"
        },
        {
            "name": "Foundation+Category",
            "source_files": "MyOftenUseTool/Foundation/**",
            "public_header_files": "MyOftenUseTool/Foundation/*.h"
        }
    ]
}

Pin It on Pinterest

Share This