当前位置: 首页 > news >正文

iOS object-c self关键字总结

在Objective-C中,self 关键字是一个指向当前对象的指针。它是对象自身实例的别名,通常在对象内部的方法中使用,以提供一个指向当前对象的引用。使用 self 可以帮助你访问对象的属性和方法,特别是在处理消息传递和方法调用时。

以下是 self 关键字的一些常见用途:

  1. 访问对象的属性

    - (void)setSomeProperty:(NSString *)newValue {self.someProperty = newValue;
    }
    
  2. 在方法内部调用其他方法

    - (void)doSomething {[self doSomethingElse];
    }
    
  3. 在初始化方法中

    - (instancetype)init {self = [super init];if (self) {// 初始化代码}return self;
    }
    
  4. 在dealloc方法中

    - (void)dealloc {// 清理代码,例如释放对象持有的其他对象[self release];
    }
    
  5. 在block中使用

    __block __weak typeof(self) weakSelf = self;
    void (^myBlock)(void) = ^{[weakSelf doSomething];
    };
    
  6. 在代理和回调中

    id<Delegate> delegate = self;
    
  7. 在响应链中

    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {[[self delegate] alertView:alertView clickedButtonAtIndex:buttonIndex];
    }
    

使用 self 可以提高代码的可读性,特别是当你需要明确指出是在操作当前对象时。此外,当在一个对象的方法内部使用 self 时,它也有助于避免潜在的编译器警告,尤其是在涉及对象初始化的情况下。

需要注意的是,在block中使用 self 时,应该使用 __block__weak 修饰符来避免强引用循环(retain cycle)。__block 用于在block内部修改变量的值,而 __weak 用于防止block捕获对象的强引用,从而避免内存泄漏。

http://www.lryc.cn/news/335535.html

相关文章:

  • 京东云16核64G云服务器租用优惠价格500元1个月、5168元一年,35M带宽
  • hive管理之ctl方式
  • cpp 内存分区模型
  • 44.网络游戏逆向分析与漏洞攻防-角色管理功能通信分析-角色创建服务器反馈数据包分析
  • web安全学习笔记(6)
  • 揭秘“二次放号查询接口”:为您的通信安全保驾护航
  • 字节8年经验之谈 —— 如何实现高效的自动化渗透测试?
  • ElasticSearch分词检索
  • 每日三道面试题之 Java并发编程 (四)
  • ubuntu20.04.6将虚拟机用户目录映射为磁盘Z
  • TCP挥手中TIME_WAIT存在的原因
  • 使用Docker部署jar包
  • 深入了解WebKit:结构简介
  • Pgsql怎样找到表中某个字段值重复的记录并删除冗余记录,只保留一条
  • 如何在HarmonyOS(鸿蒙操作系统)上进行应用开发
  • C++ typeid运算符介绍
  • Android适配平板屏幕尺寸
  • 汽车充电桩主板在出厂前需要做哪些检测?
  • 关于Renesas R7 的选项字节开关看门狗
  • redis bigKey问题
  • 二手车商的套路
  • c++ 根据ip主机号和子网掩码随机生成ip
  • 事务的隔离级别
  • 性能优化角度
  • Vue3 使用ElementUI 显示异常
  • 从0开始复习python~
  • 从零开始搭建后端信息管理系统(新手小白比如)
  • CentOS 7详细介绍。
  • JavaScript:nodeType节点/文档碎片对象模型-DcoumentFragment
  • JDK安全剖析之安全处理入门