在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
@property预编译指令的作用是自动声明属性的setter和getter方法 @interface Foo: NSObject
@property t;
@
@implmentation Foo
- (NSInteger)t
{
...
}
- (void)setT:(NSInteger)newT
{
...
}
@end
相应的setter, getter方法怎么实现呢? 这里没有用@systhesize自动合成 @interface Foo : NSObject
{
NSInteger t;
}
@property NSInteger t;
@end
@implementation Foo
-(void)setT:(NSInteger)newt
{
t = newt;
}
-(NSInteger)t
{
return t;
}
@end
实例变量的名称是否必须和属性名称保持一致呢?答案是否定的. @interface Foo : NSObject
{
NSInteger _t;
}
@property NSInteger t;
@end
@implementation Foo
@synthesize t=_t;
-(void)setT:(NSInteger)newt
{
_t = newt;
}
-(NSInteger)t
{
return _t;
}
@end
这样在类的内部我们用实例变量来访问.换句话说可以通过@systhesize控制生成的setter, getter方法对哪些实例变量起作用。 |
请发表评论