`
whui0110
  • 浏览: 84223 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

objective-c nil Nil NULL NSNull 区别

    博客分类:
  • ios
 
阅读更多

nil:指向oc中对象的空指针

Nil:指向oc中类的空指针 

NULL:指向其他类型的空指针,如一个c类型的内存指针

NSNull:在集合对象中,表示空值的对象 

 

[NSNull null]是一个对象,他用在不能使用nil的场合。

因为在NSArray和NSDictionary中nil中有特殊的含义(表示列表结束),所以不能在集合中放入nil值。如要确实需要存储一个表示“什么都没有”的值,可以使用NSNull类。例:[NSMutableArrayObj addObject: [NSNull null]];

 

 若obj为nil:

[obj message]将返回NO,而不是NSException

 

若obj为NSNull:

[obj message]将抛出异常NSException

 

 

分享到:
评论

相关推荐

    Objective-C switch 语句

    在Objective-C中,`switch`语句可以处理`nil`和`NSNull`,这对于处理可选值或可能为空的对象很有用。不过,这种情况下的`switch`通常需要配合`if`判断来确保安全性。 ```objc id someObject; switch (someObject) {...

    总结IOS中nil、Nil、NULL和NSNull区别

    在Objective-C编程中,了解nil、Nil、NULL和NSNull之间的区别至关重要,因为它们在不同场景下有着不同的用途和含义。下面将逐一详细介绍这些概念。 1. **NULL** NULL是C语言中的一个宏,用来表示空指针。在C语言中...

    2015 Objective-C 三大新特性.pdf

    在Nullability出现之前,Objective-C开发者通常会使用NSNull来表示一个空值,这在很大程度上依赖于文档说明和人为的代码约定,而使用Nullability注解后,可以更直观地声明某个对象是否可以为nil,比如使用NonNull...

    objective-C学习资料汇总专题

    资源名称:Objective-C学习资料汇总专题资源目录:【】Objective-C NSAutoreleasePool【】Objective-c 中 nil, Nil, NULL和NSNull的区别【】Objective-C 中self 和 super【】Objective-C 的编程之道【】Objective-C_...

    iOS中nil、Nil、NULL、NSNull详解

    在iOS开发中,我们经常会遇到各种表示空值的符号,如nil、Nil、NULL和NSNull。理解它们的区别和用途是编写清晰、可维护代码的关键。 1. nil nil是Objective-C中的对象空值,主要用于表示id类型或者使用@interface...

    IOS 基础之nil,NULL,NSNULL区别详解

    在iOS开发中,理解`nil`、`NULL`和`NSNull`的区别至关重要,因为它们在不同的场景下有着特定的用途。以下是对这三个概念的详细解释: 1. `nil`: `nil`是Objective-C中的一个特殊值,通常用于对象指针。当你声明一个...

    ios-后台返回数据排空(nsnull nil)处理.zip

    - `nil`: 在Objective-C中,`nil`是对象指针类型的零值,意味着指针没有指向任何对象。调用`nil`对象的方法或属性会直接返回`nil`或默认值,通常不会引起崩溃。 2. **数据解析前的预处理** - 在解析JSON数据之前...

    NSHipster Obscure Topics in Cocoa & Objective C

    本书内容涉及了Objective-C中的nil、NULL、NSNull、BOOL、bool、Boolean、NSCFBoolean等关键数据类型的区别;以及在类型编码(Type Encodings)、存储类(Storage Classes)中的@__attribute__和instancetype的应用;...

    面试题整理(优化后,需要持续优化)1

    5. **nil, Nil, null, NSNull的区别** - `nil` 是指向Objective-C对象的空指针,对于对象类型的指针变量,赋值`nil`意味着没有对象。 - `Nil` 是指向类的空指针,用于类的指针。 - `null` 是C语言中的空指针,...

    Objective-C处理空字符串和页面传值及自定义拷贝

    Objective-C在iOS应用开发中扮演着重要角色,特别是在处理数据解析、页面间数据传递以及对象复制等方面。本文将深入探讨如何处理空字符串、页面传值以及自定义拷贝。 首先,处理空字符串是iOS开发中常见的任务。...

    IOS 去null

    在Objective-C或Swift中,当我们使用如`NSJSONSerialization`或第三方库如`SwiftyJSON`解析JSON时,如果JSON数据中的某个字段为null,尝试将它转换为对象时,可能会导致程序崩溃。为了防止这种情况,我们需要采取...

    OC Extension DelectedDicNull(判断字典中key是否有值).zip

    如果值为`nil`或等于`[NSNull null]`(因为`nil`和`NSNull`在某些情况下可能被视为不同),就从可变字典中移除该键值对。最后返回处理后的不可变字典。 通过使用这样的工具方法,开发者可以确保在存储字典到...

    son数据去除nsnull

    当我们在Objective-C代码中解析JSON数据并尝试访问一个值为`null`的键时,会得到一个`NSNull`对象,而不是nil。这可能会导致一些未预期的行为,尤其是在进行条件判断或者遍历字典时。 要处理这种情况,有几种方法...

    JJException:保护Objective-C应用程序(保护App不闪退)

    JJException 常见问题不会因JJException崩溃,钩住无法识别的选择器,越界,参数为nil等。将异常引发到接口,然后将异常记录保存到日志中,升级应用程序或Hot-Fix来解决例外。保护App,一般常见的问题不会导致闪退,...

    JSON解析 SBJson

    它可以将JSON字符串转化为NSArray、NSDictionary、NSString、NSNumber、或者nil(对应于JSON中的null)。 使用SBJson时,你需要导入相关的头文件: ```objc #import "SBJson.h" ``` 接下来,我们将详细讲解如何在...

    防止崩溃的措施

    对于Objective-C,可以使用NSNull对象来代表空值,但必须确保正确处理这种特殊对象。 字典取值是另一个潜在的崩溃点。如果尝试从字典中获取一个不存在的键的值,程序会崩溃。使用`object(forKey:)`方法时,如果键不...

    IOS 开发之对象为空的判断(nil、null)详解

    首先,`nil`是Objective-C中的关键字,用于表示指向对象的指针没有指向任何实际的对象,也就是说,这个指针是“空”的。当一个对象被释放或者从未被初始化时,它的引用通常会被设置为`nil`。因此,对于对象类型的...

    MTLJSONAdapterWithoutNil

    "MTLJSONAdapterWithoutNil" 是一个Objective-C项目,它扩展了Mantle库的功能,主要是解决了在使用Mantle进行JSON序列化和反序列化时遇到的nil值处理问题。Mantle是一个轻量级的数据模型转换框架,通常用于iOS和...

Global site tag (gtag.js) - Google Analytics