前言
其實屬性這個之前有寫過尚氛,不過側重點不同诀诊,這次按照屬性和實例變量的關系來梳理,整理自程序員說阅嘶。
一属瓣、property是什么
字面意思來看呢,property有屬性的意思讯柔。
@property聲明屬性的語法抡蛙,它可以快速方便的為實例變量創(chuàng)建存取器,并允許我們通過點語法使用存取器磷杏。
用個好多人用的等式就是@property = ivar + setter + getter溜畅;
- ivar是實例變量。
- setter 是設置實例變量的存取器极祸。
- getter 是獲取實例變量的存取器慈格。
二怠晴、實例變量、setter浴捆、getter
直接上代碼吧
定義如下
{
//實例變量最好以_開頭
NSString *_car;
NSString *_bus;
}
//定義
//setter
- (void)setCar:(NSString *)carName;
//getter
- (NSString *)car;
//setter
- (void)setBus:(NSString *)busName;
//getter
- (NSString *)bus;
實現(xiàn)如下
//實現(xiàn)
- (void)setCar:(NSString *)carName
{
_car = carName;
}
- (NSString *)car
{
return _car;
}
- (void)setBus:(NSString *)busName
{
_bus = busName;
}
- (NSString *)bus
{
return _bus;
}
應用如下
Test1ViewController *vc = [Test1ViewController new];
[vc setCar:@"甲殼蟲"];
[vc setBus:@"祥龍公交"];
NSLog(@"car is %@, bus is %@",[vc car],[vc bus]);
效果如下
textview[5598:1451791] car is 甲殼蟲, bus is 祥龍公交
可以看到我們定義了兩個實例變量蒜田,通過set和get進行存取,模擬的@property的實現(xiàn)方式选泻,不過@property的使用更加簡單冲粤。
@property的簡單應用
書接上回,同樣功能页眯,代碼如下
定義如下
@property (nonatomic,strong) NSString *car;
@property (nonatomic,strong) NSString *bus;
使用如下
test2ViewController *vc2 = [test2ViewController new];
vc2.car = @"奧拓";
vc2.bus = @"手扶拖拉機啊";
NSLog(@"car is %@ , bus is %@",vc2.car,vc2.bus);
效果如下
textview[5637:1456619] car is 奧拓 , bus is 手扶拖拉機啊
恩確實簡單很多梯捕,點語法沒啥說的,屬性聲明之前也有窝撵,恩就是這樣的,當然了setter和getter也都是可以重寫的傀顾,一般都是重寫getter吧。這個之前也寫過碌奉。