首页 > 代码库 > Objective-C @property关键字
Objective-C @property关键字
OC中提供了@property的关键字来声明变量,来简化开发人员手写getters和setters,同时不破坏面向对象的封装性,这样的好处是在一个有很多属性的Model类里,无需再为每一个属性写一套getters和setters,让代码更简洁。下面看代码的示例。
// // Goods.h // 07_Property // // Created by apple on 14-11-12. // Copyright (c) 2014年 cc. All rights reserved. // #import <Foundation/Foundation.h> @interface Goods : NSObject { int price2; } // OC中提供了 @property关键字来声明变量 // 1. @property声明的变量可以直接生成public的getters和setters方法,无需自己实现了 // 2. @property声明的变量是private类型的 // 3. @property声明的变量名默认是“标准变量名”, 即变量前面加上_, 这里生成的就是 _price, 通过description()可以验证 // 4. @property声明的变量可以关联一个成员变量 @property int price = price2, 生成的getters和setters就是price2这个成员变量的了 // 5. @property声明的变量无需写在 {}中了 @property int price; - (NSString *)description; @end
// // Goods.m // 07_Property // // Created by apple on 14-11-12. // Copyright (c) 2014年 cc. All rights reserved. // #import "Goods.h" @implementation Goods - (NSString *)description { return [NSString stringWithFormat:@"price=%d", _price]; } @end
// // main.m // 07_Property // // Created by apple on 14-11-12. // Copyright (c) 2014年 cc. All rights reserved. // #import <Foundation/Foundation.h> #import "Goods.h" int main(int argc, const char * argv[]) { @autoreleasepool { Goods* pGoods = [[Goods alloc]init]; //使用自动生成的setPrice [pGoods setPrice:10]; NSLog(@"%@", pGoods); } return 0; }
测试输出的结果如下:
Objective-C @property关键字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。