oc中的属性和变量

初学oc的同学都应该会遇到这个问题,在test.h文件中

@interface test : NSObject
{
    int a;
}
@property (nonatomic, retain) int b;

 a为实例变量,其他类访问不了,b为属性自带get,set方法,整个工程可见。在test.m文件中使用时用a和self.b,其他.m文件中用test.b。实际上等同于在test.h中 

@interface test : NSObject
{
    int a;
    int _b;
}
- (void)setb : (int) b;
- (int)getb;
在test.m中实现
- (void)setb : (int) b
{
    _b = b;
}
- (int)getb
{
    return _b;
}
当变量名与去掉“_”前缀的成员变量相同时,在*.m文件中使用@synthesize将二者联系起来。
test.h
@interface test : NSObject
{
    int _a;
}
@property (nonatomic, retain) int a;
test.m
@implementation test
@synthesize a=_a;
@end


_a : 直接访问成员变量
self->_a : 直接访问成员变量
self.a : get方法
[self a] : get方法





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值