zoukankan      html  css  js  c++  java
  • 工具类(过滤接口空值, value 或 空字符串)

    为了便于日常开发效率,因此创建了一些小的工具类便于使用.
    具体 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
    

      

    以上便是此次分享的内容,期待大神多多指点补充,使其更加强壮!

  • 相关阅读:
    第 9 章 完成购物车
    新建 ASP.NET MVC 项目快速代码
    一个真正的应用程序(第7~8章)(所需代码在下一篇随笔里)
    HTML
    squid 高匿设置
    Linux操作系统上ADSL拨号上网的方法详解
    MYSQL-max_binlog_cache_size参数
    mysql查杀会话
    centos配置Tomcat以指定的身份(非root)运行
    mysql load data导入脚本
  • 原文地址:https://www.cnblogs.com/survivorsfyh/p/9641616.html
Copyright © 2011-2022 走看看