属性property介绍:2-公共属性与专有属性

在自定义类中,既可以在.h文件中声明属性,也可以在.m文件中声明属性。在.h文件中声明的属性可以供外部调用,称为公共属性;在.m文件中声明的属性,即该类扩展中声明的属性,只能在该类的实现部分使用,称为专有属性。

1、定义专有属性

在类实现的.m文件中,可以定义供类内部使用的专用属性。

#import "MyPropertyClass.h"

@interfaceMyPropertyClass()

@property(nonatomic,copy)NSString*firstName;

@property(nonatomic,copy)NSString*lastName;

@end

2、专有属性懒加载

使用懒加载的方式,初始化两个属性。

/**

*  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文件中,定义供外部调用的公共属性。

#import

@interfaceMyPropertyClass:NSObject

@property(nonatomic,copy)NSString*name;

@end

4、公共属性懒加载

在.m文件中,使用懒加载初始化公共属性。在懒加载中,使用点语法获取firstName以及lastName属性的值,并进行拼接。

/**

*  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=@"宏创学院";

NSLog(@"最新值:%@",properyClass.name);

}

return0;

}

运行结果:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 9,085评论 3 38
  • 对你,我想我输了。 这是一个会打扮的年龄,不再邋邋遢遢的。虽然在你眼里,我依旧是一身运动装,偶尔出奇的打扮也因为上...
    华亭亭阅读 340评论 1 3
  • 那几日还未在城里租房子,每天早上都要先骑车到街上,再坐公交车去城里。2016年1月31日,当我停下摩托车的时候,身...
    自珍阅读 124评论 0 0
  • 我想 不管遇到什么 都要热爱生活 依旧对生活充满信心 更要爱护自己 给自己满满的爱 喜悦的度过每一天 除了生死 都...
    oopse阅读 116评论 0 0
  • 文|心子 1 又有新的玩具了!昨天是粉粉的嘟脸熊,今天是萌萌的公主收纳盒。我在梦里捧着这些玩具,仿佛回到了童年。但...
    学心知行阅读 905评论 26 25