08-04、僵尸对象、野指针、空指针

Snip20170925_44.png
Xcode中给当前项目设置监听僵尸对象报的错
Snip20170925_46.png
Xcode中设置全局断点,可以让程序停留在报错的那行代码
Snip20170925_47.png
杠杠func杠杠的使用
Snip20170925_49.png
#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[]) {

@autoreleasepool {
    Person *p = [[Person alloc] init]; // 1
    
    // 只要一个对象被释放了, 我们就称这个对象为 "僵尸对象"
    // 当一个指针指向一个僵尸对象, 我们就称这个指针为野指针
    // 只要给一个野指针发送消息就会报错
    [p release]; // 1-1 = 0
    // *** -[Person release]: message sent to deallocated instance 0x1001146b0

    // 空指针  nil  0
    // 为了避免给野指针发送消息会报错, 一般情况下, 当一个对象被释放后我们会将这个对象的指针设置为空指针
    // 因为在OC中给空指针发送消息是不会报错的
//        p = nil;
    
    [p release];
    [p release];
    [p release];
    [p release];
    [p release];
    [p release];
    [p release];
    
    
}
    return 0;
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【转载】曾梦想仗剑走天涯 1.Xcode IDE概览 说明:从左到右,依次是“导航窗格(Navigator)->边...
    06a6a973d7ab阅读 9,316评论 2 20
  • 1.Xcode IDE概览 说明:从左到右,依次是“导航窗格(Navigator)->边列(Gutter)->焦点...
    小地阅读 10,725评论 0 9
  • 一些基础的知识,经常混淆,特整理下 空指针: 1. 没有存储任何内存地址的指针就称为空指针(NULL指针)。 2....
    刘应阅读 10,986评论 4 20
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,204评论 4 61
  • 經過週末的修整,又迎來了新的一周,今天又是週一,開始上班了又得早起。雖然週末睡了很多覺,想著這下休息好了,下周肯定...
    静心_安心阅读 1,313评论 0 1