iOS中的私有属性问题
2016-07-01 16:44
435 查看
iOS中.m文件中声明的属性是私有的,但是不是绝对私有的。私有属性通过KVC可以设置和获得该属性的。而私有是相对于封装后他人不知道你的私有属性的情况下的私有。例子如图:
Person.h
Person.m
ViewController.m
运行结果为:
Person.h
#import <Foundation/Foundation.h> @interface Person : NSObject - (NSString *)getName; - (NSInteger)getAge; @end
Person.m
#import "Person.h" @interface Person() { @private NSString *_name; } @property (nonatomic,assign) NSInteger age; @end @implementation Person - (NSString *)getName { return _name; } - (NSInteger)getAge { return _age; } @end
ViewController.m
#import "ViewController.h" #import "Person.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; Person *person = [[Person alloc]init]; [person setValue:@"merry" forKey:@"name"]; NSLog(@"KVC获取的人名:%@",[person valueForKey:@"name"]); NSLog(@"方法获取的人名:%@",[person getName]); [person setValue:@24 forKey:@"age"]; NSLog(@"KVC获取的年纪:%@",[person valueForKey:@"age"]); NSLog(@"方法获取的年纪:%ld",[person getAge]); } @end
运行结果为:
相关文章推荐
- iOS 动画之大波浪
- 截屏(把layer渲染到上下文再取出来)
- iOS系统版本判断方法给我留下的坑
- 一种简便实用的自定义LOG实现(iOS)
- iOS实现MD5加密的代码
- iOS 获取文件的目录路径的几种方法
- 开源项目在真机调试(Coding iOS 客户端为例)
- iOS开发播放文本
- iOS收到推送消息后跳到指定的页面
- iOS开发问题----加载图片的链接里面带有汉字加载不出来的问题
- IOS loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
- ios音频视频开发 基础篇
- IOS气泡动画教程
- iOS开发之抓包工具Charles
- iOS下虚拟键盘出现窗口缩放导致的问题
- nagios 使用 sendEmail 发送报警邮件
- iOS原生APP与H5+JS交互
- iOS开发解决使用融云sdk融云头像问题第二版 (终结了 完美)
- IOS 学习之路(一) 徒手写界面(3)使用框架
- iOS 与JS Html常见交互