Objective-C语言中的点语法

    点语法,其本质还是调用setter和getter方法,编译器在遇到点语法时,会自动将其转换成调用setter或getter方法。

比如:

#import <Foundation/Foundation.h>


@interface Person : NSObject
{
    
    int _age;
}

- (void)setAge:(int)age;
- (int)age;

@end

@implementation Person
- (void)setAge:(int)age
{
    
    _age = age;
}

- (int)age
{
    
    return _age;
}

@end

int main()
{
    Person *person = [[Person alloc] init];
    // 不使用点语法
    [person setAge:10];        // 设置age的值
    int age1 = [person age];   // 获取age的值
    
    // 使用点语法
    p.age = 10;           // 设置age的值
    int age2 = p.age;     // 获取age的值

    return 0;
}

 

使用点语法时注意不要引发死循环,以下代码将会产生死循环。

- (void)setAge:(int)age
{
    
    self.age = age;
}

- (int)age
{
    
    return self.age;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值