tur*_*ted 1 null boolean objective-c uitableview ios
我想取消选择UITableView中突出显示的每个可见单元格.我试过这行代码,我很惊讶它确实有效.
[[self.tableView visibleCells]makeObjectsPerformSelector:@selector(setHighlighted:)withObject:nil];
Run Code Online (Sandbox Code Playgroud)
所以我尝试了相反的方法,用这个突出显示每个单元格:
[[self.tableView visibleCells]makeObjectsPerformSelector:@selector(setHighlighted:)withObject:[NSObject new]];
Run Code Online (Sandbox Code Playgroud)
它的工作原理!像这样编码可以吗?使用object或nil代替布尔值YES或NO?或者它会导致任何问题吗?
[...]我很惊讶它确实有效.
事实上,这是巧合的.它高度依赖于体系结构的调用约定和对象的实际地址.
例如,[NSObject new]
如果将对齐到256字节(尾随十六进制数字00)的地址返回一个对象,则可能会将其解释为NO
.
像这样编码可以吗?
当然不.正如我所说,它很脆弱,可能会混淆其他开发人员.
这是C标准的摘录(关于调用与声明不匹配的参数类型的函数):
6.5.2.2函数调用
[...]
9)如果函数定义的类型与表示被调用函数的表达式指向的类型(表达式)不兼容,则行为未定义.
归档时间: |
|
查看次数: |
130 次 |
最近记录: |