显式引用成员变量以删除“隐藏实例变量的本地声明”警告

时间:2012-06-25 19:00:22

标签: objective-c

我有这段代码:

- (void)setTableView:(UITableView *)tableView {
    tableView = tableView;
}

现在,我理解为什么我会收到警告。但这不应该修复吗?

- (void)setTableView:(UITableView *)tableView {
    self->tableView = tableView;
}

我知道我可以更改参数名称或ivar名称,但我不想。例如,在C ++中,可以使用this->foo = foo,而java可以使用this.foo = foo。 Python可以使用self.foo = foo。 objc中的等价物是什么? (不,我不想使用@property。)

1 个答案:

答案 0 :(得分:1)

问题是参数的名称即使在作业的右侧也会影响ivar的名称。虽然您和我知道您的意思是将参数的值分配给ivar,但编译器无法确定,因此它会向您发出警告。

更改参数名称,警告将消失。

相关问题