現在我有一個過濾器類,如:如何使用多約束
@interface Filter:NSObject {
NSString *a,
NSString *b;
BOOL aisset;
BOOL bisset;
}
,我有一個函數來獲得從核心數據OBJ文件,如:
(NSArray *)findObjs:(Filter *)filter;
如何實現這個功能?對於這種情況,我知道答案:
...
if (!aisset && !bisset) {
}
else if (aisset && !bisset) {
predicate = [NSPredicate predicateWithFormat:@"a==%@", a];
}
else if (!aisset && bisset) {
predicate = [NSPredicate predicateWithFormat:@"b==%@", b];
}
else if (aisset && bisset) {
predicate = [NSPredicate predicateWithFormat:@"a==%@ AND b==%@", a, b];
}
...
但是如何處理三個變量,例如a,b,c?
我也嘗試這種方式:
...
NSString *predicateStr = @"";
if (aisset) ...
if (bisset) ...
if (cisset) ...
predicate = [NSPredicate predicateWithFormat:@"%@", predicateStr];
...
,但如果我使用此代碼運行,我會得到一個錯誤:「無法解析格式字符串‘%@’」。
爲什麼你將'BOOL's存儲爲指針? – 2012-04-22 07:57:35
@Jenox我的錯誤,完成了! – 2012-04-22 08:05:24