查看以下代码;
@interface testViewController : UIViewController
{
int age;
UIPopoverController *popoverController;
}
@property (nonatomic , retain ) int age;
@property (nonatomic , retain ) UIPopoverController *popoverController;
@end
@property (nonatomic , retain ) int age
为int age;
定义了getter和setter
和@synthesizing
它们在实现中给出了getter和setter的自动生成实现。
我不明白的是第二个。第二个属性(@property (nonatomic , retain ) UIPopoverController *popoverController;
)生成什么方法? (:
我见过很多程序使用@property
除了int,string等对象之外的对象;
可以指导我一个关于此的正确教程。
提前致谢。 (也有人可以告诉我如何在stackoverflow上接受答案)。
答案 0 :(得分:4)
很难提出比official documentation更好的建议(至少你应该从阅读开始)。
@property (nonatomic , retain ) int age;
真的应该为age ivar声明setter / getter方法,但是这行会给编译器错误,因为你不能为非对象类型声明具有retain属性的属性(更多细节参见文档)
@property (nonatomic , retain ) UIPopoverController *popoverController;
这一行与第一行差别不大 - 它还为popoverController ivar声明了setter和getter方法,并且自动合成的setter将保留popoverController它得到
答案 1 :(得分:1)
如果你有这个:
@property (nonatomic , retain ) UIPopoverController *popoverController;
@synthesize生成的方法将类似于:
-(UIPopoverController*) popoverController
{
return popoverController;
}
-(void) setPopoverController: (UIPopoverController*) newValue
{
[newValue retain];
[popoverController release];
popoverController = newValue;
}
答案 2 :(得分:0)
@synthesize
始终创建访问者。在你的情况下:
- (void) setPopoverController:(UIPopoverController *)value;
- (UIPopoverController *) popoverController;