点语法访问属性

之前学习通过@property,@synthesize合成setter和getter方法,每次需要设置属性时都通过setter方法完成,每次需要访问属性值都通过getter方法完成,但实际上Object-C允许使用简化的点语法访问属性和对属性赋值。

例如:下方程序

程序清单:Dog.h

#import <Foundation/Foundation.h>

@interface Dog : NSObject
//使用@property定义两个property(属性)
@property(nonatomic,copy)NSString  * flower;
@property(nonatomic,copy)NSString  * value;

@end
                                      程序清单:main.m
#import <Foundation/Foundation.h>
#import "Dog.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Dog *dog = [[Dog alloc]init];
        //通过点语法对属性赋值
        <strong>dog.flower = @"花";
        dog.value = @"A";</strong>
        //通过点语法来访问属性值
        <strong>NSLog(@"我牌为:%@%@",dog.flower,dog.value);</strong>
        
    }
    return 0;
}
上方的粗体字代码可以通过点语法对属性赋值,访问属性的示例代码,很明显,通过点语法更加简单,运行程序输出:

2016-02-10 11:46:40.227 点语法访问属性[805:25577] 我牌为:花A
Program ended with exit code: 0
点语法是一种非常简单的方法,但点语法只是一种简化的方法,他的本质依然是调用getter,setter方法,当程序调用点语法获取属性值时,就是返回该对象的getter方法的返回值。当程序调用点语法设置对象的属性值时,本质上是调用该对象的setter方法设置。



你可能感兴趣的:(ios,点语法)