我正在使用NSUserDefault
(用戶默認值)來確定「Lists Sort Ascending」 - 從我的核心數據棧中使用NSFetchedResultsController
- 按升序排序或不排序。使用OR ||運算符在if語句中以評估變量(不等於兩(2)個字符串)
例如:
NSSortDescriptor *sortDescriptorPrimary = [NSSortDescriptor sortDescriptorWithKey:self.sortAttributePrimary ascending:listsSortAscending selector:@selector(compare:)];
無論用戶設置的,有兩個實體指此值總是爲真即BOOL listsSortAscending = YES;
,具體而言,按字母順序排序的列表,諸如聯繫人列表。
下面這句話的代碼是試圖解釋什麼,我試圖實現...
BOOL listsSortAscending = YES;
if ((![self.entity isEqualToString:@"Contact"]) || (![self.entity isEqualToString:@"TypeChild"])){
listsSortAscending = [self.userDefaults boolForKey:kListsSortAscending];
}
從那些總是被排序
ascending:YES
這兩個實體名單
除此之外,其他實體會根據用戶默認值listsSortAscending
排序。
此代碼不起作用,但我似乎無法解決正確的語法。
我已經閱讀了很多堆棧溢出和其他頁面,包括Objective-C IF statement with OR condition,但我似乎無法解決這個惱人的語法!
下面的代碼確實有效,但是我的強迫性特徵今天運行得很好,我想用OR運算符||
來學習正確的語法。
BOOL listsSortAscending = YES;
if (![self.entity isEqual:@"Contact"]) {
if (![self.entity isEqual:@"TypeChild"]) {
listsSortAscending = [self.userDefaults boolForKey:kListsSortAscending];
}
}
有什麼建議嗎?
您的第一個代碼檢查「實體!=聯繫OR實體!= TypeChild」,第二個檢查「實體!=聯繫和實體!= TypeChild」... –
感謝@MartinR,完全錯過了它。 – andrewbuilder