Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标c中@财产的目的_Objective C_Properties - Fatal编程技术网

Objective c 目标c中@财产的目的

Objective c 目标c中@财产的目的,objective-c,properties,Objective C,Properties,查看下面的代码 @interface testViewController : UIViewController { int age; UIPopoverController *popoverController; } @property (nonatomic , retain ) int age; @property (nonatomic , retain ) UIPopoverController *popoverController; @end @属性(非原子,保留

查看下面的代码

@interface testViewController : UIViewController
{
     int age;
     UIPopoverController *popoverController;
}
@property (nonatomic , retain ) int age;
@property (nonatomic , retain ) UIPopoverController *popoverController;

@end
@属性(非原子,保留)int-age
定义
int-age的getter和setter
@在implementation中合成它们将自动生成getter和setter的实现

我不明白的是关于第二个。第二个属性(
@property(非原子,保留)UIPopoverController*popoverController;
)生成什么方法?(:

我见过很多程序使用
@property
来处理int、string等以外的对象

你能给我一个关于这方面的指导吗


提前谢谢。(还有谁能告诉我如何接受关于stackoverflow的答案)。

很难再提出更好的建议(至少你应该从阅读开始)

实际上应该为age ivar声明setter/getter方法,但这一行将给出编译器错误,因为您不能为非对象类型声明带有retain属性的属性(有关详细信息,请参阅文档)


这一行与第一行没有太大区别-它还声明了popoverController ivar的setter和getter方法,并且自动合成的setter将保留它得到的popoverController。很难再提出更好的建议(至少你应该从阅读开始)

实际上应该为age ivar声明setter/getter方法,但这一行将给出编译器错误,因为您不能为非对象类型声明带有retain属性的属性(有关详细信息,请参阅文档)


这一行与第一行没有太大区别-它还声明了popoverController ivar的setter和getter方法,并且自动合成的setter将保留它得到的popoverController始终创建访问器。在您的情况下:

- (void) setPopoverController:(UIPopoverController *)value;
- (UIPopoverController *) popoverController;

@synthesis
始终创建访问器。在您的情况下:

- (void) setPopoverController:(UIPopoverController *)value;
- (UIPopoverController *) popoverController;
如果您有:

@property (nonatomic , retain ) UIPopoverController *popoverController;
@synthesis生成的方法类似于:

-(UIPopoverController*) popoverController
{
    return popoverController;
}

-(void) setPopoverController: (UIPopoverController*) newValue
{
    [newValue retain];
    [popoverController release];
    popoverController = newValue;
}
如果您有:

@property (nonatomic , retain ) UIPopoverController *popoverController;
@synthesis生成的方法类似于:

-(UIPopoverController*) popoverController
{
    return popoverController;
}

-(void) setPopoverController: (UIPopoverController*) newValue
{
    [newValue retain];
    [popoverController release];
    popoverController = newValue;
}