zoukankan      html  css  js  c++  java
  • 请求SQL数据是存在<null>,的解决方法

    
    

    删除字典中的null

    我们在处理服务器传过来的数据过程中,如果数据中出现null,我们是没法进行本地持久化处理的。在使用NSUserDaults保存本地时,如果其中一个字段的value为NULL值,就会出现崩溃。

    null产生原因

    null是后台在处理数据的时候,如果没有设置默认的value值,数据库默认填充的值,就为null值,从服务器传过来,我们json or xml解析成null值。

    解决办法

    • 服务器端做好处理,让所有的字段对应都有默认的不为空的值
    • 本地做删除null处理

    本地做删除null处理

    如果是数据库做处理的话,可以在数据库中,将未设置的value填充为" "即可。

    如果是本地处理的话,我个人是通过添加类别来达到效果的。

    代码如下:

    NSDictionary+MyDictionary.h
    ***********************************
    #import <Foundation/Foundation.h>
    
    @interface NSDictionary (MyDictionary)
    -(NSDictionary *)deleteAllNullValue;
    @end
    
    
    
    //*********************************************************************
    NSDictionary+MyDictionary.m
    **********************************************
    //  NSDictionary+MyDictionary.m
    
    
    #import "NSDictionary+MyDictionary.h"
    
    @implementation NSDictionary (MyDictionary)
    - (NSDictionary *)deleteAllNullValue{
        NSMutableDictionary *mutableDic = [[NSMutableDictionary alloc] init];
        for (NSString *keyStr in self.allKeys) {
            if ([[self objectForKey:keyStr] isEqual:[NSNull null]]) {
                [mutableDic setObject:@"" forKey:keyStr];
            }
            else{
                [mutableDic setObject:[self objectForKey:keyStr] forKey:keyStr];
            }
        }
        return mutableDic;
    }
    @end


    学习:http://www.ithao123.cn/content-10842398.html

  • 相关阅读:
    并发编程之线程进阶
    并发编程之线程
    进程间通信(队列和管道)
    在python程序中的进程操作
    操作系统之进程
    网络编程之黏包
    树莓派 websocket 控制LED
    lua 调用 C -- 实例 C函数作为应用程序的一部分
    linux 环境下进程什么时候会被 killed掉
    STM32 + cJSON 死机问题解决
  • 原文地址:https://www.cnblogs.com/shenlaiyaoshi/p/5737754.html
Copyright © 2011-2022 走看看