Hi all,

I have some objects in an array and I want to filter it in the UI off my app.

I first created a test case to test out various NSPredicates, and have verified 
that they work. For instance, filtering an array with the following predicate 
yields correct results:

[NSPredicate predicateWithFormat:@"ANY personalNames.value.gedcomString 
CONTAINS %@", @"Hansen"]

I then set about implementing an NSPredicateEditor and have put in the 
following NSPredicateRowTemplate:

    [[NSPredicateEditorRowTemplate alloc] 
initWithLeftExpressions:stringExpressions
                                     
rightExpressionAttributeType:NSStringAttributeType
                                                         
modifier:NSAnyPredicateModifier
                                                        
operators:stringOperators
                                                          options:0]

Where stringExpressions is an array containing:

[NSExpression expressionForKeyPath:@"personalNames.value.gedcomString"]

When I run my app, I get an exception (quoted below) as soon as I expose my 
objects to my array controller (via a property on my document it's bound to), 
though as far as I can tell, the predicate should be functionally the exact 
same? For completness, inspecting it in the debugger yields:

(NSPredicate *) $0 = 0x000000010f87d790 ANY personalNames.value.gedcomString 
CONTAINS ""

I've verified that the array <__NSArrayM 0x109cfb490> contains the expected 
personalNames from the first object in the array I'm filtering.

Can anyone provide some insights here?

Regards,
Mikkel Eide Eriksen

> 2012-09-27 19:08:18.261 GedcomGUI[29311:9e0b] An uncaught exception was raised
> 2012-09-27 19:08:18.261 GedcomGUI[29311:9e0b] [<__NSArrayM 0x109cfb490> 
> addObserver:forKeyPath:options:context:] is not supported. Key path: 
> value.gedcomString
> 2012-09-27 19:08:18.263 GedcomGUI[29311:9e0b] (
>       0   CoreFoundation                      0x00007fff8fdb9716 
> __exceptionPreprocess + 198
>       1   libobjc.A.dylib                     0x00007fff99b49470 
> objc_exception_throw + 43
>       2   CoreFoundation                      0x00007fff8fdb94ec 
> +[NSException raise:format:] + 204
>       3   Foundation                          0x00007fff955c04b7 
> -[NSArray(NSKeyValueObserverRegistration) 
> addObserver:forKeyPath:options:context:] + 76
>       4   Foundation                          0x00007fff955204ae 
> -[NSKeyValueNestedProperty object:didAddObservance:recurse:] + 226
>       5   Foundation                          0x00007fff955191b9 
> -[NSObject(NSKeyValueObserverRegistration) 
> _addObserver:forProperty:options:context:] + 222
>       6   Foundation                          0x00007fff9551812d 
> -[NSObject(NSKeyValueObserverRegistration) 
> addObserver:forKeyPath:options:context:] + 111
>       7   AppKit                              0x00007fff9809864a 
> -[_NSModelObservingTracker 
> _registerOrUnregister:observerNotificationsForModelObject:] + 200
>       8   AppKit                              0x00007fff980981dd 
> -[_NSModelObservingTracker startObservingModelObjectsAtReferenceIndexes:] + 
> 364
>       9   AppKit                              0x00007fff9805bd74 
> -[NSArrayController 
> _arrangeObjectsWithSelectedObjects:avoidsEmptySelection:operationsMask:useBasis:]
>  + 717
>       10  AppKit                              0x00007fff98075d8e 
> -[NSArrayController setContent:] + 878
>       11  AppKit                              0x00007fff98075568 
> -[NSArrayDetailBinder _refreshDetailContentInBackground:] + 1268
>       12  Foundation                          0x00007fff95521a90 
> NSKeyValueNotifyObserver + 390
>       13  Foundation                          0x00007fff955234a9 
> NSKeyValueDidChange + 456
>       14  Foundation                          0x00007fff954dea0f 
> -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] + 130
>       15  GedcomGUI                           0x0000000100001d66 -[Document 
> context:didFinishWithEntityCount:] + 550
>       16  Gedcom                              0x000000010004df67 -[GCContext 
> parseNodes:error:] + 3383
>       17  Gedcom                              0x000000010004e770 -[GCContext 
> parseData:error:] + 832
>       18  GedcomGUI                           0x000000010000155e 
> __22-[Document parseData:]_block_invoke_0 + 78
>       19  libdispatch.dylib                   0x00007fff8f645f3d 
> _dispatch_call_block_and_release + 15
>       20  libdispatch.dylib                   0x00007fff8f6420fa 
> _dispatch_client_callout + 8
>       21  libdispatch.dylib                   0x00007fff8f64323e 
> _dispatch_worker_thread2 + 304
>       22  libsystem_c.dylib                   0x00007fff92b13ceb 
> _pthread_wqthread + 404
>       23  libsystem_c.dylib                   0x00007fff92afe1b1 
> start_wqthread + 13
> )

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to