文档章节

Effective Objective-C2.0读书小记(二)对象内部访问实例变量

JoshSone
 JoshSone
发布于 2016/11/18 23:34
字数 371
阅读 18
收藏 0
点赞 0
评论 0

第七条:在对象内部尽量直接访问实例变量

在对象内部访问实例变量时,可以通过"属性访问"或"直接访问"。

①属性访问(self.button):点语法,通过存取方法来访问相关实例变量

②直接访问(_button):不经由存取方法,直接访问实例变量

区别:

(1)直接访问,速度快。

(2)直接访问实例变量,不会调用其"设置方法"。比如说:在ARC下直接访问一个声明为copy的属性,那么不会拷贝该属性,只会保留新值释放旧值。

(3)直接访问不会触发"键值观测"(KVO)

(4)通过属性访问有助于排查与之相关的错误,可以给"获取方法"、"设置方法"新增断点,监控该属性的调用者,和访问时机。

建议:

以"直接访问"的形式读取实例变量,通过"属性"设置实例变量。

注意:

惰性初始化(懒加载)要采用直接访问的方式来读取数据。

 

© 著作权归作者所有

共有 人打赏支持
JoshSone
粉丝 7
博文 76
码字总数 32794
作品 0
长春
iOS工程师
《Effective Objective-C 2.0》读书笔记(一)

1、了解Objective-C的起源 Objective-C与C++、Java等面向对象语言类似,不过很多方面有所差别。Objective-C使用了“消息结构”(messaging structure)而非“函数调用”(function calling)...

习惯有你syh
2017/12/07
0
0
《Effective Objective-C 2.0》读书笔记

思维导图.png 前言 好长时间没有更新了,年后把《Effective Objective-C 2.0》这本书看完了,上面👆是用思维导图画出来的整本书的内容。下面把书中一些重要的和难理解的知识点整理一下,不...

_誌念
03/25
0
0
Effective objective-C 读书笔记 (第一部分)

第1章 熟悉Objective-C 第1条 了解Objective-C语言的起源 Objective-C是一种“消息结构”的语言,而非“函数调用”语言。 关键区别在于:使用消息结构的语言,其运行时所执行的代码由运行环境...

shenglanya
2017/12/05
0
0
Effective Objective-C2.0读书小记(一)枚举

第五条:用枚举表示状态、选项、状态码 枚举类型:enum ①枚举是一种常量命名方式。比如说: 编译器会为枚举分配一个独有的编号,从0开始,每个枚举递增+1。 当然,也可以不使用编译器分配的...

JoshSone
2016/11/16
4
0
Objective-C 程序设计(第四版)复习摘要(上)

在进一步学习《Effective Objective-C 2.0》之前,把《Objective-C 程序设计 2.0(第四 版)》一字不漏的刷了一遍~ 下面列出了之前初次学习遗漏或者很重要的知识点。(很基础哈~,高手勿喷)...

Herbert77
2015/09/02
25
0
教程1:Objective-C

Objective-C的教程已经看过了。 内容大概有:[Objective-C基础语法(if/else/switch/for...),关键字,运算符],[面向对象(封装/继承/多态)],[Foundation框架常用类],[内存管理],[协...

殷美洪
2013/03/11
0
0
iOS成员属性和成员变量的区别

一、@property 和@synthesizer 在objective-c 1.0中,我们为interface同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 在o...

朝雨晚风
2016/08/12
0
0
KVC、KVO实现原理

一、KVC 运用了一个isa-swizzling技术。isa-swizzling就是类型混合指针机制。KVC主要通过isa-swizzling,来实现其内部查找定位的。isa指针,如其名称所指,(就是is a kind of的意思),指向...

_子墨
2016/02/28
409
0
《Effective Objective-C 2.0》笔记

1 了解 Objective-C 起源 Objective-C 使用“消息结构”而非“函数调用”。 使用“消息结构”的语言,其运行时所执行的代码由运行环境来决定。 使用“函数调用”的语言,则由编译器决定。 分...

JiandanDream
05/11
0
0
Objective-C内存管理

详解Objective-C 2.0 关于Objective-C内存管理规则是本文要介绍的内容,不多说,先来看内容。Objective-C 2.0增加了一些新的东西,包括属性和垃圾回收。那么,我们在学习Objective-C2.0之前,...

晨曦之光
2012/05/16
305
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RESTful API 设计规范

关于「能愿动词」的使用 为了避免歧义,文档大量使用了「能愿动词」,对应的解释如下: 必须 (MUST):绝对,严格遵循,请照做,无条件遵守; 一定不可 (MUST NOT):禁令,严令禁止; 应该 (S...

niithub
7分钟前
0
0
Spring Cloud云服务架构 - common-service 项目过程构建

我们将对common-service整个项目进行剖析,将整个构建的流程给记录下来,让更多的关注者来参考学习。 首先在构建spring cloud的common-service之前,我们需要准备的技术: Maven(项目构建)...

itcloud
8分钟前
0
0
oracle 如何查看日志?

Oracle日志查看一.Oracle日志的路径:登录:sqlplus "/as sysdba"查看路径:SQL> select * from v$logfile;SQL> select * from v$logfile;(#日志文件路径)二.Oracle日...

youfen
9分钟前
0
0
sap netweaver developer studio安装svn插件

问题 我现在在Sap的IDE(netweaver developer studio)上面安装svn插件。 步骤 确定IDE使用的eclipse版本 Help→About SAP NetWeaver Developer Studio→Installation Details→Features→F...

亚林瓜子
16分钟前
0
0
大数据开发学习的内容介绍,成都大数据培训机构哪里好?

大数据开发培训已经成为了越来越多人的选择,大数据开发工程师也是各公司争相争夺的金领人才之一了,在当今科技发展非常迅速的社会里,越来越多人把职业规划投向了大数据开发。这里为大家整理...

加米谷大数据
21分钟前
2
0
函数

函数 函数是Python中最主要也是最重要的代码组织和复用手段。作为最重要的原则,如果你要重复使用相同或非常类似的代码,就需要写一个函数。通过给函数起一个名字,还可以提高代码的可读性。...

火力全開
22分钟前
0
0
gulp-webserverf启动服务,局域网无法访问

如题,gulp-server启动的服务,只能本机访问,局域网通过ip无法访问; 启动的其它项目,均可以访问成功; 网上资源,很多说什么防火墙之类的问题,都无果; 只需要给启动服务添加参数即可, ...

littleFaye
24分钟前
0
0
RabbitMQ实战:5种模式和示例

应用RabbitMQ的5种队列 一、简单队列 P:消息的生产者 C:消息的消费者 红色:队列 生产者实现思路: 创建连接工厂ConnectionFactory,设置服务地址127.0.0.1,端口号5672,设置用户名、密码...

spinachgit
25分钟前
0
0
mysql常见报错标号对应原因以及处理方法

mysql常见报错标号以及对应解决方法 报错标号 报错现象 解决方法 原因 1449 Cause: java.sql.SQLException: The user specified as a definer ('authplat_dev'@'%') does not exist 在控制台...

ChinaHYF
27分钟前
0
0
Java 监控系统技术选型

(1)操作系统监控 Sigar oshi (2)Tomcat监控 JMX 日志 (3)Oracle监控 日志 直连SQL查询 基于Druid连接池 (4)拓扑图 jtopo http://www.jtopo.com/demo/statictis.html...

cccyb
29分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部