• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

08-Objective-C特有语法:@property、@synthesize

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.@property

  • 使用在@interface中
  • 用来自动生成setter(设置器)和getter(构造器)的声明  
  • 用@property  int age;就可以代替一下这些代码: 
- (void)setAge:(int)age;   // setter
- (int)age;                // getter

 

  • 示例:

  


 

2.@synthesize

  • 使用于@implementation中 
  • 用来自动生成setter(设置器)和getter(构造器)的实现 
  • 用@synthesize age = _age就可以代替下面这些代码:
- (void)setAge:(int)age
{
    _age = age;
}
- (int)age
{
    return _age;
}
  • 示例:

 

  • 如果成员变量_age不存在,就会自动生成一个@private私有的变量_age(因为_age声明在@implementation中,故为私有的)
  • 如果为@synthesize age; 此时为指明要去实现哪个age,如果.h文件中又声明一个同名的age成员变量,就会去实现它的setter和getter,否则,在@implementation中自动生成一个age变量,再实现age的setter和getter方法
  • 如果手动实现了setter方法,编译器就会自动实现getter方法
  • 同理,若手动实现了getter方法,编译就会自动实现setter方法
  • 若setter和getter都同时实现了,那么编译器就不会自动生成不存在的成员变量

3.Xcode4.4以后:特性

  • @property囊括了@synthesize的功能,即在@interface中声明@propery int age; 编译器就在.h文件中自动生成了setter和getter方法声明和实现

         默认情况下是去访问下划线_age的成员变量

  • 此时,@proterty自动生成的成员变量默认就是@protect受保护的(因为在.h文件中声明的成员变量,默认是@protect)

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Objective-C高级编程:iOS与OSX多线程和内存管理发布时间:2022-07-12
下一篇:
ObjectiveC2.0的一些新特性介绍发布时间:2022-07-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap