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
    

      

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

  • 相关阅读:
    HDU 1004 Let the Balloon Rise【STL<map>】
    UVA 1030
    UVA 10881
    POJ 3154 Graveyard【多解,数论,贪心】
    浅谈Notepad++选中行操作+快捷键+使用技巧【超详解】
    COGS 68. [NOIP2005] 采药【01背包复习】
    [phomeflashpic]怎样调用帝国CMS图片幻灯效果
    微信认证新增公对公账户银行卡转账支付审核费用 缩减认证审核时长
    微信公众平台回复过了怎么不能再次回复?亲们要注意查看"公众平台回复用户消息时限变更通知"的公告啊
    新版微信终于支持消息撤回了 微信零钱也能转账了[微信5.3.1.16更新]
  • 原文地址:https://www.cnblogs.com/survivorsfyh/p/9641616.html
Copyright © 2011-2022 走看看