0

カスタムスクロールビュー内に、以下のように述語オブジェクトを追加しました。デバッグスタックのメソッドpredicateWithSubpredicatesでエラーが発生しています。これが私のサンプルコードです。エラーが発生した場合はお知らせください。

-(void) awakeFromNib
{
    NSPredicateEditor *predicateeditor = [[NSPredicateEditor alloc] initWithFrame:NSMakeRect(0, 0, 200, 150)];

    NSArray *leftExpressions = [NSArray arrayWithObjects:[NSExpression expressionForKeyPath:@"date"], nil];

    NSAttributeType rightType = NSDateAttributeType;
    NSComparisonPredicateModifier modifier = NSAllPredicateModifier; //don't need "ANY" or "ALL"

    NSArray *operators = [NSArray arrayWithObjects:[NSString stringWithString:@"Today"],[NSString stringWithString:@"Tomorrow"],[NSString stringWithString:@"Next week"], nil];

    NSUInteger options = 0;

    NSPredicateEditorRowTemplate *rowTemplate = [[NSPredicateEditorRowTemplate alloc] initWithLeftExpressions:leftExpressions rightExpressionAttributeType:rightType modifier:modifier operators:operators options:options];

    [predicateeditor setRowTemplates:[NSArray arrayWithObject:rowTemplate]];

    [rowTemplate release];

    [self addSubview:predicateeditor];

    [predicateeditor addRow:nil];

    [predicateeditor displayValuesForRow:1];

    [predicateeditor release];
}
4

1 に答える 1

0

あなたが書いたように、これは次のような述語を定義します:

ALL date {"Today", "Tomorrow", "Next Week"} {a user-entered date}

これが無意味であることを理解していただければ幸いです。

まず第一に、本当に を意味するのであれば、//don't need "ANY" or "ALL"を使用すべきではありませんNSAllPredicateModifier。を使用する必要がありますNSDirectPredicateModifier

また、operators配列に入れることができるのは、組み込みの述語演算子値NSNumberの 1 つをボックス化するオブジェクトです。

だから:あなたは何を達成しようとしていますか?

于 2012-01-04T15:09:07.763 に答える