Object-c中的点语法

在Object-c2.0中,为了方便其他语言,比如C,java程序员快速的熟悉Object-C的变成风格,加入了点语法,以前

的Object-C都是使用中括号调用的方法,这样会令C,java的程序员很不习惯,下面就来介绍一下Object-C里面的点语

法是怎么一回事。


首先建立一个类, 其中的.h头文件如下

#import <Foundation/Foundation.h>

@interface DotSyn : NSObject
{
    int _age;
}

- (void) setAge: (int) newAge;

- (int) age;

@end

然后是实现文件
#import "DotSyn.h"

@implementation DotSyn

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

- (int) age{
    return age;
}


@end

然后既可以在主函数文件里面写代码了,我会分别使用经典方式和点语法写出来

#import <Foundation/Foundation.h>
#import "DotSyn.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        Dog *dog1 = [Dog alloc];
        dog1 = [dog1 init];
       
        int ID = [dog1 getID];
        int age = [dog1 getAge];
        float price = [dog1 getPrice];
        
        NSLog(@"id=%d, age = %d price = %f",ID,age,price);
        
        DotSyn *dot = [[DotSyn alloc] init];
        
        [dot setAge:100];
        int age = [dot age];
        NSLog(@"age is %d\n",age);
        
        //上面的经典方式,下面讲采用点方式
        
        dot.age = 200;
        age = dot.age;
        
        NSLog(@"new age is %d\n",age);
        
    }
    return 0;
}

可以看到,使用点语法会让函数的调用非常简单而且代码简洁,但是在生命和实现的时候貌似有些复杂,这里其实还

是又其他的方法可以让这种悲催的苦逼活交给编译器来干,下面我们是用另外一种方式来实现这个东西。

下面还是先看.h文件

#import <Foundation/Foundation.h>

@interface DotSyn : NSObject
{
    int _age;
}

@property int age;
@end

然后是.m文件

#import "DotSyn.h"

@implementation DotSyn

@synthesize age = _age;

@end
可以看到,这样的实现是非常简单的,

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值