ios . 关键字
property :默认会加上getset方法。
下面我看代码 大家就会明白了。以前我们做java虽然定义了变量但是都需要set 和get 方法负责存取。
首先我们现在h文件定义
之后在引用类里面做引用 发现是不可能直接赋值的。
这是我们会和java 一样做get set 方法来存取值
之后在调用部分写
我们清楚的就可以看到 我们的变量被赋值成了50
这时候我们有没有感觉到特别麻烦 闹心。一个赋值要写那么多的代码。要是知道对于时间 简直就是程序袁的绳命哇!!所以我们xcode 就直接帮我们渐变掉了
在我们定义的时候前面加@property 这就告诉xcode帮我直接城市setget 方法了
在调用时
看是不是简便多了。
最后看一下我在声明的位置。其实就是和方法声明一样不需要放在大括号里面。也就是说调用的时候是点出的方法而不是变量对象。这一点切记。
super
super是继承了父类,调父类的init方法了
这里就是 继承父类的init,如果想用父类的对象 就【super 父类对象】就可以了额。
父类
子类
这个就是
1>先调用父类的构造方法 ([super init])
2>才会进行子类内部成员变量的初始化
-----未完待续----------
格式 @property (参数1,参数2,...) 类型 名字;
其中参数主要分为三类:
• 读写属性: (readwrite/readonly/setter = /getter = )
• setter语意:(assign/retain/copy)
• 原⼦子性: (atomicity/nonatomic) • nullability annotations: (nonnull/nullable)
参数意义
- readwrite 产生setter\getter⽅方法
- readonly 只产生简单的getter,没有setter, 默认的读写属性
- setter 指定生成setter⽅法的名字
- getter 指定生成getter方法的名字
- assign 默认类型,setter方法直接赋值,而不进⾏retain操作,适⽤于基本数据类型, 对象类型, 不会发⽣生引用计数变化
- retain setter方法对参数进⾏行release旧值,再retain新值
- copy setter方法进⾏行Copy操作,与retain一样
- atomic 保证多线程访问下的安全,但浪费系统资源,原子性控制的默 认设置
- nonatomic 禁⽌多线程,变量保护,提高性能
- nonnull 表示对象可以是NULL或nil
- nullable 表⽰对象不应该为空