この回答では: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;
}
これが条件演算子です。基本的には、条件に基づいて 2 つの値のいずれかを返します。
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;