`
shake863
  • 浏览: 638236 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IOS开发中nil和release的用法

    博客分类:
  • ios
阅读更多

先简单解释一下 nil release 的作用: nil 就是把一个对象的指针置为空,只是切断了指针与内存中对象的联系;而 release 才是真正通知内存释放这个对象。所以 nil 并没有释放内存,只有 release 才回真正释放内存。

再分析一下二者使用的先后顺序:如果没有 release 就直接 nil ,那么虽然不会出错,却等于自己制造内存泄漏了,因为 nil 之后 release 就已经不起作用了。 相反,如果在使用接口对象时只仅仅 release 没有设置 self.myOutlet =
nil
,那么程序可能也不会报错,但却会十分不稳定、不健壮,很容易发生崩溃现象。因为一个接口对象在 release 之后,给它所分配等内存就已经被释放了,如果释放之后系统再用到这个对象,那么程序就会 crash 。如果释放之后把它的指针置为空,则即便后面的程序用到该对象,也不会崩溃。

所以在使用 nil release 的时候一定要慎重哦!

分享到:
评论

相关推荐

    ios-清理模型中的nil.zip

    清理字典转模型后模型中的nil,属性多于字典,服务器返回为null等情况

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

    相信有不少朋友想知道,在 Objective-C 中 nil 和 Nil 以及 NULL 的区别。最重要的是,在面试中还有不少朋友常会被问到。现在小编在这里统一详细说明。

    ios开发小技巧

    iOS开发之UIlabel多行文字自动换行 (自动折行) UIView *footerView = [[UIView alloc]initWithFrame:CGRectMake(10, 100, 300, 180)]; UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 100, 300, ...

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

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

    iOS开发 常见的崩溃闪退原因(12点)1

    1. 字典的key或value为nil,字典的key只要为nil任何写法定会崩, 2. 数组越界 3. 内存溢出或泄露,分为下个 4. 遍历数组时,对数组进操作

    iOS中nil、Nil、NULL、NSNull详解

    主要介绍了iOS中nil、Nil、NULL、NSNull详解的相关资料,需要的朋友可以参考下

    iOS中json解析出现的null,nil,NSNumber的解决办法

    在iOS开发过程中经常需要与服务器进行数据通讯,Json就是一种常用的高效简洁的数据格式,通过本文给大家介绍iOS中json解析出现的null,nil,NSNumber的解决办法,感兴趣的朋友参考下

    基于iOS开发

    [self addObserver:self forKeyPath:@"isRecording" options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew context:nil]; [self addObserver:self forKeyPath:@"isPlaying" options:...

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

    IOS 开发之对象为空的判断(nil、null)详解 前言: 在开发中,会遇到很多空的情况,有时候取得对象(null),还有时候会得到的情况,我们需要判断是否为空,进行return; id result; // 针对(null)这种情况 if...

    IOS开发中延迟执行和取消

    在 Objective-C 中延迟执行还是很常见的需求,通常有如下几种方式可供选择: performSelector: 想要延迟调用某个方法: [self performSelector:@selector(delay) withObject:nil afterDelay:3.0]; 取消延迟的方法...

    iOS App开发中的UISegmentedControl分段组件用法总结

    不过它的选项个数非常有限,因为你的IOS设备屏幕有限。当我们需要使用选项非常少的单选按钮时它很合适。 一、创建 代码如下: UISegmentedControl* mySegmentedControl = [[UISegmentedControl alloc]initWithItems:...

    ios-一个关于数组越界、字典key与value为nil情况下导致的低级错误的线上Crash的避免的仓库.zip

    一个关于数组越界、字典key与value为nil情况下导致的低级错误的线上Crash的避免的仓库

    ios开发记录

    //initWithNibName将控制器绑定xib的方法,如果xib的名称和控制器的类名称相同的时候,直接写init(会自动绑定同名的xib)就可以,如果xib的名称和类名称不同的话,必须手动调用此方法来进行绑定 ...

    ios-模型.zip

    [1]JSON -> Model 最简单的字典转模型 [2]JSON字符串转模型 [3]模型中嵌套模型 [4]模型中有个数组属性,数组里面又要装着其他模型 ...如果你有什么疑问或者交流的话,可以加 IOS代码库开发群QQ:524884683

    ios-防止数组越界 字典value为nil导致崩溃.zip

    数组越界 字典value为nil导致崩溃 只要导入这个分类在项目中就可以解决了 不需要写代码

    ios自定义柱形图(带动画效果)

    用法: //***********用法************ NSMutableArray *dataTitleArray=[[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9", nil]; NSMutableArray *dataArray=[...

Global site tag (gtag.js) - Google Analytics