黑马程序员技术交流社区
标题:
大家对延展怎么看?
[打印本页]
作者:
herobin
时间:
2016-1-8 23:56
标题:
大家对延展怎么看?
延展怎么看,有什么用啊?
作者:
香草芭芙
时间:
2016-1-10 09:33
三种作用吧.
1. 写在源文件 .h中 增加公有属性, 公有方法
2. 写在源文件 .m中 增加私有属性, 私有方法
3. 写在单独的 .h 文件中, 和2 一样.
应用场景的话
1. 对外只有get方法, 对内有get,set方法的时候.
2. 版本升级的时候 , 需要增加属性, 不用动原来的代码 , 可以继续往下增加属性 & 方法 , 写到一半不需要了 , 直接删掉就行.
一般是 情况1 用的比较多.
比如人一生下来, 有父母给的遗产, 只会花钱 不会挣钱的场景...
main.m
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person * p = [[Person alloc] initWithMoney:100000];
printf("%.2f\n",p.money);
[p buySome];
printf("%.2f\n",p.money);
}
return 0;
}
复制代码
Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
/** money */
@property(nonatomic, assign, readonly) float money;
- (instancetype)initWithMoney:(float)money;
- (void)buySome;
@end
复制代码
Person.m
#import "Person.h"
@interface Person ()
/** money */
@property(nonatomic, assign, readwrite) float money;
@end
@implementation Person
- (instancetype)initWithMoney:(float)money {
self = [super init];
if (self) {
_money = money;
}
return self;
}
- (void)buySome {
self.money -= 4000;
}
@end
复制代码
作者:
笑声不断
时间:
2016-1-10 11:11
主要用于解决category时,方法不私有的问题。延展可以拥有私有属性和方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2