2

この回答では:https ://stackoverflow.com/a/4481896/1486928

このような行があります:

 UITableView *tableView = controller == self.fetchedResultsController ? self.tableView : self.searchDisplayController.searchResultsTableView;

これらすべての記号が同じ行に表示されるのは初めてです:/(私は初心者です)。

4

5 に答える 5

4

something ? foo : barの短いバージョンです

if(something) {
   foo
} else {
   bar 
}

三項演算子と呼ばれます。

したがって、コードは次のようになります。

UITableView *tableView;
if(controller == self.fetchedResultsController) {
    tableView = self.tableView;
} else {
    tableView = self.searchDisplayController.searchResultsTableView;
}
于 2012-08-26T18:15:36.050 に答える
4

これが条件演算子です。基本的には、条件に基づいて 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

于 2012-08-26T18:18:51.577 に答える
2

これは、controllerがに等しい場合self.fetchedResultsController

セット tableView = self.tableView、それ以外の場合

セットするtableView = self.searchDisplayController.searchResultsTableView

あなたはそれを次のように表すことができます

UITableView *tableView;
 if (controller == self.fetchedResultsController)
     tableview = self.tableView;
 else
     tableview = self.searchDisplayController.searchResultsTableView;
于 2012-08-26T18:17:04.813 に答える
1

これは、三項演算子を示しています。

于 2012-08-26T18:15:01.220 に答える
1

これは、三項演算子の例です。

手書きで書かれた:

 UITableView *tableView;
 if (controller == self.fetchedResultsController)
     tableview = self.tableView;
 else
     tableview = self.searchDisplayController.searchResultsTableView;
于 2012-08-26T18:16:39.053 に答える