我正在使用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