Jac*_*nkr 1 syntax objective-c accessor ios
为什么/何时使用一个而不是另一个?我刚刚遇到一个问题,我在使用另一个时发出警告而没有警告.
例:
tableView.tableHeaderView = label; // worked
[tableView tableHeaderView:label]; // did not work - "instance method '-tableHeaderView:' not found (return type defaults to 'id')"
Run Code Online (Sandbox Code Playgroud)
困惑
制定者通常以前缀为前缀set.试试这个:
[tableView setTableHeaderView:label];
Run Code Online (Sandbox Code Playgroud)
也就是说,这个:
tableView.tableHeaderView = label;
Run Code Online (Sandbox Code Playgroud)
转换为:
[tableView setTableHeaderView:label];
Run Code Online (Sandbox Code Playgroud)
使用点表示法时由编译器自动进行.
当宣布的objc属性,这一惯例也适用于声明的属性名称的setter(再次默认情况下).
Getter不使用此约定,它们的选择器与声明的属性名称相同(默认情况下):
view = tableView.tableHeaderView;
Run Code Online (Sandbox Code Playgroud)
等于:
view = [tableView tableHeaderView];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |