在自定義類中酸员,既可以在.h文件中聲明屬性,也可以在.m文件中聲明屬性河胎。在.h文件中聲明的屬性可以供外部調(diào)用闯袒,稱為公共屬性;在.m文件中聲明的屬性仿粹,即該類擴(kuò)展中聲明的屬性搁吓,只能在該類的實(shí)現(xiàn)部分使用,稱為專有屬性。
1雾家、定義專有屬性
在類實(shí)現(xiàn)的.m文件中蔑祟,可以定義供類內(nèi)部使用的專用屬性。
#import "MyPropertyClass.h"
@interfaceMyPropertyClass()
@property(nonatomic,copy)NSString*firstName;
@property(nonatomic,copy)NSString*lastName;
@end
2摩骨、專有屬性懶加載
使用懶加載的方式,初始化兩個(gè)屬性朗若。
/**
*? firstName懶加載
*? @return firstName
*/
-(NSString*)firstName{
if(_firstName==nil){
_firstName=[NSStringstringWithFormat:@"www."];
}
return_firstName;
}
/**
*? lastName懶加載
*
*? @return lastName
*/
-(NSString*)lastName{
if(_lastName==nil){
_lastName=[NSStringstringWithFormat:@"hcios.com"];
}
return_lastName;
}
3恼五、定義公共屬性
在類定義的.h文件中,定義供外部調(diào)用的公共屬性哭懈。
#import
@interfaceMyPropertyClass:NSObject
@property(nonatomic,copy)NSString*name;
@end
4灾馒、公共屬性懶加載
在.m文件中,使用懶加載初始化公共屬性遣总。在懶加載中睬罗,使用點(diǎn)語法獲取firstName以及l(fā)astName屬性的值轨功,并進(jìn)行拼接。
/**
*? name公共屬性懶加載容达,拼接firstName與lastName
*
*? @return name
*/
-(NSString*)name{
if(_name==nil){
self.firstName=[self.firstName stringByAppendingString:self.lastName];
_name=self.firstName;
}
return_name;
}
5古涧、main()中打印公共屬性
在外部只能打印公共屬性,不能打印專用屬性花盐。
#import
#import "MyClass.h"
#import "MyConst.h"
#import "MyPropertyClass.h"
intmain(intargc,constchar*argv[]){
@autoreleasepool{
MyPropertyClass*properyClass=[[MyPropertyClassalloc]init];
NSLog(@"初始值:%@",properyClass.name);
properyClass.name=@"宏創(chuàng)學(xué)院";
NSLog(@"最新值:%@",properyClass.name);
}
return0;
}
運(yùn)行結(jié)果: