iOS-BugList:NSNull equal

    NSArray *testArr = [NSArray arrayWithObjects:[NSNull class], nil];
    UIView *d = testArr[0];

    BOOL  a = [d isKindOfClass:[NSNull class]]; //NO
    a = [d isEqual:[NSNull class]];             //YES
    a = [d isEqual:[NSNull null]];             //NO

    d = [NSNull null];
    a = [d isKindOfClass:[NSNull class]];       //YES
    a = [d isEqual:[NSNull null]];             //YES
    a = [d isEqual:[NSNull class]];             //NO
    

偶然发现的,只是调试了下,还未总结分析,大家讨论下先

时间: 2024-08-12 19:24:34

iOS-BugList:NSNull equal的相关文章

iOS开发 == 和 equal的区别和联系

对于普通的数据类型,只要值相等==就会返回true,对于两个指针类型的变量,他们必须指向同一个指针变量,也就是他们指向的地址必须相等. equal和使用==来判断两个对象是否相等没有区别. 但是有时候我们比较字符串的时候只要值相等就可以返回true,那是因为重写了equal方法. 对于这个方法,我们可以自己定义他们相等的条件,所有的类都继承自NSObject类,我们都可以重写这个方法. 对于字符串比较,字符串还定义了一个isEqualToString的方法,专门用来判断字符串序列等不等 有一个问

fio2.1.10--HOWTO

Table of contents ----------------- 1. Overview 2. How fio works 3. Running fio 4. Job file format 5. Detailed list of parameters 6. Normal output 7. Terse output 8. Trace file format 9. CPU idleness profiling 1.0 Overview and history ---------------

ios nil null Nil NSNull区别

nil.Nil.NULL.NSNull的区别 nil:指向一个对象的空指针 Nil:指向一个类的空指针 NULL:指向其他类型(如:基本类型.C类型)的空指针 NSNull:通常表示集合中的空值 举例: NSURL *url = nil; Class class = Nil; int *pointerInt = NULL; NSArray *array = [NSArray arrayWithObjects:[[NSObject alloc] init], [NSNull null], [[NS

iOS下nil 、NULL、 Nil 、NSNull的区别你造吗

nil 定义一个实例为空, 指向oc中对象的空指针. NSString *someString = nil; NSURL *someURL = nil; 当对某个对象release 的同时最好把他们赋值为nil,这样可以确保安全性,如果不赋值nil,可能导致程序崩溃. NULL NULL可以用在C语言的各种指针上 #define __DARWIN_NULL #define__DARWIN_NULLConstants int *pointerToInt = NULL; char *pointerT

iOS中使用nil NULL NSNULL的区别

nil NULL NSNULL的区别主要以下几点 1.nil:一般赋值给空对象 2.NLL:一般赋值给nil之外的其他空值.入SEL等. 3.NSULL:NSNULL只有一种方法+ (NSNull *) null; [NSNull null]用来在NSArray和NSDictionary中加入非nil(表示列表结束)的空值 4.注意:当想ni发送信息的时候,返回NO,不会有异常,程序可以继续执行下去:而向NSNULL对象发送消息的时候会收到异常 nil: A null pointer to an

<转>ios nil、NULL和NSNull 的使用

nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中类是一个对象,是类的meta-class的实例), 而NSNull则用于集合操作,虽然它们表示的都是空值,但使用的场合完全不同. 示例如下: id object = nil; // 判断对象不为空 if (object) { } // 判断对象为空 if (object == nil) { } // 数组初始化,空值结束 N

iOS开发解决json串中的NSNull类型

后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的NSNull类型全部转换成@""空字符串.下面是转化方法: 1 自定义的几个方法:放在NSDictionary类别中 #pragma mark - 私有方法 //将NSDictionary中的Null类型的项目转化成@"" +(NSDictionary *)nullDic:(NSDictionary *)myDic { NSArray *keyArr = [myDic a

nil,Nil,NULL和NSNull理解(ios)

nil nil 是 ObjC 对象的字面空值,对应 id 类型的对象,或者使用 @interface 声明的 ObjC 对象. 例如: ? NSString *someString = nil; NSURL *someURL = nil; id someObject = nil; if (anotherObject == nil) // do something 定义: ? // objc.h #ifndef nil # if __has_feature(cxx_nullptr) #   def

IOS 学习笔记 2015-03-20 O之 nil,Nil,NULL,NSNull

1.oc最好 用nil   [ nil  任意方法],不会崩溃 nil 是一个对象值.NULL是一个通用指针(泛型指针). 2. NSNULL,NULL和nil在本质上应该是一样的,NULL和nil其实就是0,但是在Objective-c中,   对于像NSArray这样的类型,nil或NULL不能做为加到其中的Object,如果定义了一个NSArray,为其分配了内存,又想设置其中的内容为空,   则可以用[NSNULL null返回的对对象来初始化NSArray中的内容,3.因为在NSArr