在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
可以看到,这样的实现是非常简单的,