关于OC中成员变量,属性的一些基本知识(针对初学者)
来源:互联网 发布:主力意图分析 知乎 编辑:程序博客网 时间:2024/05/21 19:26
嘛,第一次写博客,先贫两句吧。
我一直都很懒,总之就是没人让我做事的话我一般是不会主动找事做的。
然,前两天和一个同样做iOS的朋友聊天,他说他经常写一些博客,然后balabaleba的说了好多写博客的好处。
我只记住了写博客能让我们变得越来越NB这一条了,嗯。
所以,我决定要养成写博客的“NB”习惯~
刚开始,就从简单的开始说起吧。
下面进入正题:
相信很多初学者都对OC中得点语法和->的使用比较模糊,下面我来给大家做详细的说明。
@synthesize实现的属性,可以用点语法,赋值和取值都可以,如:
p.name=@"aaaaaaaa";//可以用点语法直接给属性赋值
NSLog(@"-------%@",p.name);//可以用点语法取属性值
定义了属性也可以用getter和setter,如:
[p setName:@"bbbbbbb"];//默认生成的set方法的方法名是setName
NSLog(@"-------%@",[p name]);//注:用属性生成的get方法默认的方法名是name,不是“getName”。所以不能用getName调用,这里要注意。
如果没有用@property将成员变量定义为属性,而是自己定义get(访问器),set(设置器)方法实现成员变量的赋值取值,则要注意:
1.自定义的get的方法的方法名必须定义为name才能使用点语法的取值功能。即:如果你定义的方法名是getName,那么你可以用NSLog(@"-------%@",[p getName])来打印name的值,但是你用NSLog(@"-------%@",p.name),就会报错。如果你定义的方法名是name,那么这两种你都可用。
2.和get一样,set方法的名字也需要定义成固定setName的时候才能使用点语法,否则不行。
3.如果你没用@property定义属性,而是自己定义访问器和设置器,那么如果你只定义了get,你就能用点语法的取值功能,如:NSLog(@"-------%@",p.name),但是不能用赋值功能,如p.name=@"aaaaaaaa"。反之也一样。
最后,只有设置为属性的或者自己定义了设置器访问器的实例变量才能使用点语法。
关于可见度:
@public声明为公共的成员变量,不需要设置器和访问器就可以访问该变量,当然你也可以添加设置器访问器。访问的方式为p->name,如果没定义设置器和访问器,那么只能用这种方式访问变量,否则会报错。
- 关于OC中成员变量,属性的一些基本知识(针对初学者)
- 关于OC中成员变量,属性的一些基本知识(针对初学者)
- 关于OC中成员变量,属性的一些基本知识(针对初学者)
- OC中成员变量和属性变量
- OC中类的属性与成员变量的区别
- OC中属性和成员变量的区别和使用
- OC 中成员变量和属性的区别及联系
- OC中,成员变量和属性区别
- oc的成员变量的属性
- OC成员变量的默认属性
- OC 成员变量和属性的区别 .
- OC 成员变量和属性的区别
- OC 成员变量和属性的区别
- OC 成员变量和属性的区别 .
- OC 成员变量和属性的区别 .
- OC 成员变量和属性的区别
- 八、oc中类的一些基本知识
- OC中关于类的基本知识
- hdu 4652 Dice(期望)
- JavaScript之DOM编程
- 软件工程-设计
- Maximum Depth of Binary Tree
- 麻省理工时域差分软件 MEEP windows 下编译开发(二)——开始编译
- 关于OC中成员变量,属性的一些基本知识(针对初学者)
- unix shell if 参数
- C# 程序Hello World
- Android 自定义控件打造史上最简单的侧滑菜单
- Matlab基础学习------架构数组
- Java 并发编程和可伸缩性(二)
- php 在windows下配置虚拟目录的方法介绍
- 自定义 AlertDialog
- javascript原生移动云编程2 - 原生移动UI的起点