IOS之Accessor method
1 前言
本章主要介绍了Objective-C中的存取方法的相关概念。
2 详述
存储方法是一个可以获得或者设置一个对象的属性值的实例方法。在Cocoa的术语中,一个检索对象属性值的方法提及为getter方法,或者"getter;",一个改变对象属性值的方法提及为setter方法,或者“setter.”这些方法通常成对建立,提供获得或者设置对象属性值的API。
我们应该使用存储方法而不是直接存储状态数据因为他们提供了一个抽象的层。下面是存储方法所提供的两个好处:
·我们不需要重写我们的代码如果一个描述或者存储属性的方法改变。
·存储方法常常实现重要行为是无论何时一个值被检索或者设置都会被重现。例如,设置方法频繁的实现内存管理代码并且通知其他对象当一个值被改变的时候。
2.1 命名规则
因为这种模式的重要性,Cocoa定义了一些命名存储方法的规则。给出一个属性的类型type和称呼name,我们应该通过下面的格式,典型的实现存储方法:
-(type)name;
-(void)setName:(type)newName;
有个例外是属性为Boolean值。getter方法名字应该是isName。例如:
-(BOOL)isHidden;
-(void)setHidden:(BOOL)newHidden;
这种命名惯例很重要因为在Cocoa中的很多其他的功能都依赖它,特别的key-value coding。Cocoa不使用getName因为以get开始的方法表明方法返回引用类型的值。
3 结语
以上是所有内容,希望对大家有所帮助。
IOS之Accessor method的更多相关文章
- 【原】iOS动态性(三) Method Swizzling以及AOP编程:在运行时进行代码注入
概述 今天我们主要讨论iOS runtime中的一种黑色技术,称为Method Swizzling.字面上理解Method Swizzling可能比较晦涩难懂,毕竟不是中文,不过你可以理解为“移花接木 ...
- iOS运行时与method swizzling
C语言是静态语言,它的工作方式是通过函数调用,这样在编译时我们就已经确定程序如何运行的.而Objective-C是动态语言,它并非通过调用类的方 法来执行功能,而是给对象发送消息,对象在接收到消息之后 ...
- IOS 开发之 Method Swizzling + Category
ios 分类中如果增加的方法与被扩展的类方法名重复,则原方法就没法被调用….看以下例子 例如: @interface ClassA : NSObject - (NSString *) myMethod ...
- iOS执行时与method swizzling
C语言是静态语言,它的工作方式是通过函数调用,这样在编译时我们就已经确定程序怎样执行的.而Objective-C是动态语言,它并不是通过调用类的方法来执行功能,而是给对象发送消息,对象在接收到消息之后 ...
- IOS 开发之 Method Swizzling
ios 分类中如果增加的方法与被扩展的类方法名重复,则原方法就没法被调用….看以下例子 例如: @interface ClassA : NSObject - (NSString *) myMethod ...
- accessor method & mutator method
import java.time.*; public class MyTest{ public static void main(String[] args){ LocalDate date = Lo ...
- ios swift reduce Method
Swift’s API includes many functions and instance methods that reflect its functional programming her ...
- iOS编码规范
The official raywenderlich.com Objective-C style guide. This style guide outlines the coding con ...
- Accessor Search Implementation Details
[Accessor Search Implementation Details] Key-value coding attempts to use accessor methods to get an ...
随机推荐
- Ubuntu14.04设置开机自启动脚本
方法一.编辑rc.loacl脚本 Ubuntu开机之后会执行/etc/rc.local文件中的脚本,所以我们可以直接在/etc/rc.local中添加启动脚本.在 exit 0 前面添加好脚本代码, ...
- 12、java5锁java.util.concurrent.locks.Lock之ReentrantLock
JDK文档描述: public interface LockLock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作.此实现允许更灵活的结构,可以具有差别很大的属性,可 ...
- Xml中SelectSingleNode方法中的xpath用法
https://blog.csdn.net/wf520pb/article/details/2644549 最常见的XML数据类型有:Element, Attribute,Comment, Text. ...
- Linux下grub.cnf详解
grub.conf跟系统启动项有关,对于重置密码.来说小case... 1.介绍 在Red Hat Linux7.2之后,默认的引导加载程序从LTLO变为GRUB.这个引导加载程序使用户能够选择 ...
- 有关于一次windows权限方面的一次学习
由于最近需要使用windows的Local Group Policy的API,重新梳理一些有关windows权限的只是,这样需要理解一些关键概念,这些概念之间的关联联系形成了一张网络图.必须理解才能真 ...
- Huginn部署到 Heroku
折腾了几个小时,现在记录下安装步骤 1.本机Win10,放弃本地安装,官网建议也是, 2.安装虚拟机,装ubuntu系统 3.更换国内源(包括apt和gem,bunlde)ruby中国 4.注册her ...
- Tomcat无法访问中文路径的解决办法
来源于:http://sccassiel.blog.51cto.com/5398709/1141821/ 修改tomcat下的conf/server.xml文件下的 <Connector por ...
- EntityFramework 5.0 CodeFirst 教程02-删除和修改/架构改变异常的处理
-----------------------------------------------------目录--------------------------------------------- ...
- 从零实现Lumen-JWT扩展包(序):前因
转自:https://zhuanlan.zhihu.com/p/22531819?refer=lsxiao 最近这段时间我寻思着把几个月前爬下来的6万多首诗词曲文做成一个API,免费开放给大家用. 这 ...
- Python实现鸢尾花数据集分类问题——使用LogisticRegression分类器
. 逻辑回归 逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法. 概率p与因变量往 ...