OC特有的方法(点语法,)

来源:互联网 发布:枪火兄弟连2 mac修改 编辑:程序博客网 时间:2024/04/29 23:06

点语法

如果学过java或者C#的话,对“.”应该很熟悉,
比如一个Fruit类里面有一个成员变量color,要给这个成员变量赋值

Fruit f = new Fruit();f.color="red";

然而在oc中,f.color可绝不是这个意思
我们来看一段代码

#import <Foundation/Foundation.h>#import "Fruit.h"@implementation Fruit- (void)printColor{    NSLog(@"%@",_color);}- (void)setColor:(NSString *)color{    _color=color;}- (NSString *)color{    return _color;}@endint main(int argc, const char * argv[]) {        NSString *color=@"the color is red";        Fruit *f=[Fruit new];        //'.'相当于set方法        f.color=color; //这一句相当于: [f setColor:color];                       //和java中的语法是不一样的,并不是访问成员变量,而是是调用setColor方法        [f printColor];        //'.'相当于get方法        NSString *s=f.color;        NSLog(@"再输出一次:%@",s);    return 0;}出结果为:

the color is red
再输出一次:the color is red
“`

上述代码中的成员变量名是_color,f.color明显不是访问成员变量_color。它的作用相当于[f setColor:color],调用了set方法

点语法的含义及用法

OC中的点语法相当于调用set方法进行赋值
比如,f.age=10;
调用过程是,寻找名称为setAge的对象方法,参数为10。(就是将age的第一个字母大写,加上set前缀)

0 0
原创粉丝点击