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

点语法

如果学过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;
}

@end



int 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前缀)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值