ここで、次のコードのチャンクで立ち往生しています
self.isFiltered?[self.filteredCategories count]:[self.categories count]
これisFiltered
はブール値、filteredCategories
可変配列、カテゴリは配列です。この行は整数を返します。この行が何をどのように機能しているのかわかりません。ありがとう
ここで、次のコードのチャンクで立ち往生しています
self.isFiltered?[self.filteredCategories count]:[self.categories count]
これisFiltered
はブール値、filteredCategories
可変配列、カテゴリは配列です。この行は整数を返します。この行が何をどのように機能しているのかわかりません。ありがとう
それは三項ステートメントです。if
次のようなものがあるとします。
if (condition)
var = one thing
else
var = other thing
三項として、それは
var = condition ? one thing : other thing
したがって、あなたの場合、変数がフィルターされている場合はフィルター数に設定され、フィルターされていない場合は完全なカテゴリ数に設定されます。
それは同じです:
int someVariable = 0;
if(self.isFiltered) {
someVariable = [self.filteredCategories count];
} else {
someVariable = [self.categories count];
}
あなたのコードでは、それは単なる別の形式です。
それほど難しいことではありません。if/else の「高度な」バージョンです。変数isFiltered
が YES に設定されている場合はfilteredCategories
配列の要素数を返しますが、NO に設定されている場合は の要素数を返しcategories
ます。
通常の if-else を使用して単純化できます。疑わしい場合は、標準の if-else 構文を使用してください
if(self.isFiltered){
[self.filteredCategories count]
}
else{
[self.categories count]
}