Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
在iOS中调用属性的getter函数时_Ios_Objective C - Fatal编程技术网

在iOS中调用属性的getter函数时

在iOS中调用属性的getter函数时,ios,objective-c,Ios,Objective C,我在类的实现文件中定义了类的属性 @property (nonatomic, strong) IBOutlet UIView *headerView; 然后我通过-(UIView*)headerView(){…}覆盖它的getter函数,以从主包中获取一些资源 在下面的代码中,我需要在加载资源后将属性“headerView”设置为其他视图的子视图。下面是加载资源失败的代码 [self.tableView setTableHeaderView:_headerView]; 未调用Getter函数

我在类的实现文件中定义了类的属性

@property (nonatomic, strong) IBOutlet UIView *headerView;
然后我通过
-(UIView*)headerView(){…}
覆盖它的getter函数,以从主包中获取一些资源

在下面的代码中,我需要在加载资源后将属性“headerView”设置为其他视图的子视图。下面是加载资源失败的代码

[self.tableView setTableHeaderView:_headerView];
未调用Getter函数。我将属性变量更改为self.headerView:

[self.tableView setTableHeaderView:self.headerView];
它现在起作用了


self.xxx和_xxx之间有什么区别吗?我认为它们作为不同的方面与属性相同。

属性由Objective-C中的实例变量支持。本质上,
@property
默认生成一个getter和setter方法,您可以通过
self.property
访问该方法。如果使用
\u属性
,则绕过setter和getter,直接跳到实例变量。只有在
init
/
dealloc
中,或者需要绕过某人在getter/setter方法中实现的副作用时,才应该直接使用实例变量。否则,应始终使用
self.property
而不是
\u property
来访问和设置变量

属性由Objective-C中的实例变量支持。本质上,
@property
默认生成一个getter和setter方法,您可以通过
self.property
访问该方法。如果使用
\u属性
,则绕过setter和getter,直接跳到实例变量。只有在
init
/
dealloc
中,或者需要绕过某人在getter/setter方法中实现的副作用时,才应该直接使用实例变量。否则,应始终使用
self.property
而不是
\u property
来访问和设置变量

可能的重复可能的重复