为什么/何时使用一个而不是另一个?我刚刚遇到一个问题,我在使用另一个时收到警告而没有警告。
示例:
tableView.tableHeaderView = label; // worked
[tableView tableHeaderView:label]; // did not work - "instance method '-tableHeaderView:' not found (return type defaults to 'id')"
的混淆 的
答案 0 :(得分:6)
setter通常以set
为前缀。试试这个:
[tableView setTableHeaderView:label];
也就是说,这个:
tableView.tableHeaderView = label;
转换为:
[tableView setTableHeaderView:label];
使用点表示法时由编译器自动生成。
当声明一个objc属性时,此约定也会应用于setter的声明属性名称(默认情况下再次)。
Getters不使用此约定,它们的选择器与声明的属性名称相同(默认情况下):
view = tableView.tableHeaderView;
等于:
view = [tableView tableHeaderView];