-3

我从服务器获取数据,但是,NSStringNULL某些情况下,我不知道为什么NSString是 NULL,如何NSString用 NULL 制作?

4

2 回答 2

2

好吧,字符串不是NULL.

首先,在 Objective C 中,你应该使用nil而不是NULL.

另一件事是,您不能nil在 iOS 容器中拥有(NSArrayNSDictionary等)。但是,有些 API 需要为键设置一个空值。

为了解决这个问题,Apple 引入了NSNull类(和单例)。

因此,要检查数据是否为空,您必须将值与NSNull单例进行比较,如下所示:

id data = yourDictionary[@"yourKey"];
if (data == [NSNull null]) {
    // Data is invalid, and calling any message on it will result in a crash
} else {
    // Place your data in the any kind of container. You can even use isKindOfClass to be sure.
    NSString * string = data;
}
于 2013-08-20T08:41:22.913 回答
0

试试下面的宏

#define IsNULL(original) original == (id)[NSNull null]

#define IfNULL(original, replacement) IsNULL(original) ? replacement : original

#define SafeString(value) IfNULL(value, @"")

然后使用

NSLog("%@",SafeString(YOURSTRING));
于 2013-08-20T08:08:55.660 回答