在这个答案中:https ://stackoverflow.com/a/4481896/1486928
有这样一行:
UITableView *tableView = controller == self.fetchedResultsController ? self.tableView : self.searchDisplayController.searchResultsTableView;
这是我第一次在同一行中看到所有这些符号:/(我是初学者)。
在这个答案中:https ://stackoverflow.com/a/4481896/1486928
有这样一行:
UITableView *tableView = controller == self.fetchedResultsController ? self.tableView : self.searchDisplayController.searchResultsTableView;
这是我第一次在同一行中看到所有这些符号:/(我是初学者)。
something ? foo : bar
只是一个较短的版本
if(something) {
foo
} else {
bar
}
它被称为三元运算符。
所以你的一段代码变成:
UITableView *tableView;
if(controller == self.fetchedResultsController) {
tableView = self.tableView;
} else {
tableView = self.searchDisplayController.searchResultsTableView;
}
这是条件运算符。它所做的基本上是根据其条件返回两个值之一:
SomeType variable = condition ? valueIfTrue : valueIfFalse;
这可以解释为
SomeType variable;
if (condition) {
variable = valueIfTrue;
} else {
variable = valueIfFalse;
}
这里的条件是
controller == self.fetchedResultsController
因此视图控制器等于self.fetchedResultsController
,tableView 变量将被分配给self.tableView
,否则将被分配给self.searchDisplayController.searchResultsTableView
这意味着如果controller
等于self.fetchedResultsController
,那么
设置
tableView = self.tableView
,否则
放tableView = self.searchDisplayController.searchResultsTableView
您可以将其表示为
UITableView *tableView;
if (controller == self.fetchedResultsController)
tableview = self.tableView;
else
tableview = self.searchDisplayController.searchResultsTableView;
这显示了三元运算符。
这是三元运算符的一个例子。
以手写方式写出:
UITableView *tableView;
if (controller == self.fetchedResultsController)
tableview = self.tableView;
else
tableview = self.searchDisplayController.searchResultsTableView;