工具类(过滤接口空值, value 或 空字符串) - iOS
为了便于日常开发效率,因此创建了一些小的工具类便于使用.
具体 code 如下:
声明:
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h> @interface YHIsEmptySafeValue : NSObject /**
过滤 value 中空值
[NSString stringWithFormat:@"%@", SafeValue([dicCommand objectForKey:@"command"])] @param value 需要判断过滤的 value 值
@return 处理后的结果
*/
extern NSString *SafeValue(id value); /**
将接口返回数据中的空值默认转为字符串
@param dataObj 数据源
@return 结果集
*/
extern id changeType(id dataObj); @end
实现:
#import "YHIsEmptySafeValue.h" @implementation YHIsEmptySafeValue #pragma mark - 过滤 value 中空值
/**
过滤 value 中空值 @param value 需要判断过滤的 value 值
@return 处理后的结果
*/
NSString *SafeValue(id value) {
if (!value) {
return @"";
}
else if ([value isKindOfClass:[NSString class]]) {
if ([value isEqualToString:@"<null>"] || [value isEqualToString:@"null"] || [value isEqualToString:@"(null)"] || [value isEqualToString:@"nil"]) {
return @"";
}
else {
return value;
} }
else {
return [NSString stringWithFormat:@"%@", value];
}
} #pragma makr - 将接口返回数据中的空值默认转为字符串
/**
将接口返回数据中的空值默认转为字符串 @param dataObj 数据源
@return 结果集
*/
id changeType(id dataObj) {
if ([dataObj isKindOfClass:[NSDictionary class]]) {
return nullDic(dataObj);
}
else if ([dataObj isKindOfClass:[NSArray class]]) {
return nullArr(dataObj);
}
else if ([dataObj isKindOfClass:[NSString class]]) {
return stringToString(dataObj);
}
else if ([dataObj isKindOfClass:[NSNull class]]) {
return nullStr(dataObj);
}
else {
return dataObj;
}
} /**
将 NSDictionary 中的 null 类型转化为空字符串 @""
@param dic 数据源
@return 结果集
*/
NSDictionary *nullDic(NSDictionary *dic) {
NSArray *arrKey = [dic allKeys];
NSMutableDictionary *dicResult = [NSMutableDictionary dictionary];
for (NSInteger i = 0; i < arrKey.count; i++) {
id obj = [dic objectForKey:arrKey[i]];
obj = changeType(obj);
// Add
[dicResult setObject:obj forKey:arrKey[i]];
}
// Callback
return dicResult;
} /**
将 NSArray 中的 null 类型转化为空字符串 @""
@param arr 数据源
@return 结果集
*/
NSArray *nullArr(NSArray *arr) {
NSMutableArray *arrResult = [NSMutableArray array];
for (NSInteger i = 0; i < arr.count; i++) {
id obj = arr[i];
obj = changeType(obj);
// Add
[arrResult addObject:obj];
}
// Callback
return arrResult;
} /**
将 NSString 中的 null 类型转化为空字符串 @""
@param str 数据源
@return 结果集
*/
NSString *nullStr(NSString *str) {
return @"";
} /**
将 NSString 类型直接返回 @param str 数据源
@return 结果集
*/
NSString *stringToString(NSString *str) {
return str;
} @end
以上便是此次分享的内容,期待大神多多指点补充,使其更加强壮!
工具类(过滤接口空值, value 或 空字符串) - iOS的更多相关文章
- SpringMVC 常用工具类与接口
ClassPathResource 在类路径下读取资源 public final String getPath()public boolean exists()public InputStream g ...
- 我的Java开发学习之旅------>工具类:Java使用正则表达式分离出字符串中的中文和英文
今天看到一个工具类使用正则表达式将一大段字符串中的中文和英文都分离出来了,在此记录一下,读者可以收藏! import java.util.ArrayList; import java.util.Col ...
- Java之工具类:判断对象是否为空或null
import java.lang.reflect.Array; import java.util.Collection; import java.util.Map; /** * 判断对象是否为空或nu ...
- 断言工具类之"判断条件不为空"
1 Assert.notNull(query, AssertConstants.NOT_NULL_MSG);
- Java工具类_随机生成任意长度的字符串【密码、验证码】
import java.util.Random; public class PasswordCreate { /** * 获得密码 * @param len 密码长度 * @return */ pub ...
- Java使用OkHttps工具类调用外部接口
前言 现在公司业务已止不是传统的增删改查等简单的业务处理操作,而是对数据各种联调三方接口与其他系统进行交互等,那么就需要我们在后台java中进行外部接口的调用,本文采用OkHttps工具类对接微信接口 ...
- Spark项目之电商用户行为分析大数据平台之(十)IDEA项目搭建及工具类介绍
一.创建Maven项目 创建项目,名称为LogAnalysis 二.常用工具类 2.1 配置管理组建 ConfigurationManager.java import java.io.InputStr ...
- java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象
1. java.util.Arrays 数组工具类 Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...
- StringUtils工具类的使用
注意isNotEmpty()和isNotBlank()的区别 过去的字符串判空:if("".equals(str) || str == null).现在使用工具类StringUti ...
随机推荐
- js之cookie操作
1.使用document.cookie保存信息 document.cookie = "Test=cooo";alert(document.cookie); //hours为空字符串 ...
- WebGrease—异常来自 HRESULT:0x80131040
一.错误源: 未能加载文件或程序集“WebGrease, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一 ...
- 2017年9月17日 JavaScript简介
javascript简介 javascript是个什么东西? JavaScript是个脚本语言,需要有宿主文件,它的宿主文件就是html文件. 它与java有什么关系? 没有什么直接联系,java是s ...
- 静态化HttpClient
实现方法: public class HttpClientHelper { private static HttpClient _client; public static HttpClient Ge ...
- 两个command的疑惑
1.在cqrs模式中有command和query command 命令 没有返回值,但会更改对象的状态 query 查询 有返回值 但不会改变用户的状态,对下同而言没有副作用 2.在今天的实际 ...
- jQuery三——筛选方法、事件
一.jquery常用筛选方法 以下为jquery的常用筛选方法: 代码示例如下: <!DOCTYPE html> <html lang="en"> < ...
- for计算位置坐标
代码1效果图: 代码2效果图: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...
- 使用cookie实现只出现一次的广告代码效果
我们上网经常会遇到第一次需要登录而之后不用再登录的网站的情况,其实是运用了Cookie 存储 web 页面的用户信息,Cookie 以名/值对形式存储,当浏览器从服务器上请求 web 页面时, 属于该 ...
- jQuery 添加样式属性的优先级别
jQuery类中添加多个属性 $('#five .a') .css({ color:'blue', border:'2px solid green', background:'blue' }); jQ ...
- Java—IO流 RandomAccessFile类
RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件. 支持随机访问文件,可以访问文件的任意位置. java文件模型,在硬盘上的文件是byte byte byt ...