If you can, can you establish the binding programmatically after launch? If so, does the program crash once the bindings are re-established? … considering if it is a launch issue or more systematic?
Sandor > On Nov 4, 2018, at 17:25, Motti Shneor <motti.shn...@me.com> wrote: > > Well, thanks Dave, Hunter, Richard and the rest. > > I followed each of your suggestions, and I finally found the culprit. > > A single binding, rather a nifty one, which I don’t know how to do better — > Maybe you can help. Removing this binding (alas losing functionality) window > opens instantly, regardless of the number of items. > > First off — the issue is NOT in any of the table columns. They do have > complicated bindings, but all work fast and fine. > > In the .xib there is also a custom view, only used as an accessory view to > an NSAlert dialog, when user choses to perform special editing on the items > displayed. (Kind of search-and-replace action). > > In that view, there’s a popup button, populated by binding to a (quite > special) array controller. That array controller’s content-array has the > binding that breaks window loading. > > I’ll try to explain: > > This NSTable in the window displays a list of all “Measurement” entities > related to a specific “Sample” (the “representedObject” of the File’s owner). > For that I have a “Measurements Array Controller” in “Entity” mode, whose > content array is bound to File’s Owner’s “representedObject.measurements” > relation. All table columns are bound to that array controller. > > Now each Measurement is connected via to-one relation to a “Species” entity. > > In my custom view, I wish to populate a popup button with all the Species > entities which appear in the displayed Measurements. > > For that, I created the “Used Species Array Controller” whose section in the > .xib appears below: > > > <arrayController mode="entity" entityName="Species" editable="NO" > automaticallyPreparesContent="YES" preservesSelection="NO" > selectsInsertedObjects="NO" avoidsEmptySelection="NO" > clearsFilterPredicateOnInsertion="NO" automaticallyRearrangesObjects="YES" > id="syR-1c-VXy" userLabel="Used Species Array Controller"> > <connections> > BAD: <binding destination="4l9-1K-ojl" name="contentArray" > keyPath="arrangedObjects.@distinctUnionOfObjects.species" id="TQk-n5-RYc”/> > <binding destination="-2" name="managedObjectContext" > keyPath="representedObject.managedObjectContext" id="Vqg-dg-DdM"/> > <binding destination="xYM-bl-Wzq" name="sortDescriptors" > keyPath="sortDescriptors" id="3uW-GQ-bKN"/> > </connections> > </arrayController> > > > The “Bad” binding destination, is the Measurements Array Controller’s > “arrangedObjects”, and the model keyPath is “@distinctUnionOfObjects.species” > > Effectively, when calculated, this “collects” all the species from all > displayed measurements, removing any duplicates. Nifty, isn’t it? > > I can’t provide the list statically, in advance, because the user is free to > replace the species of displayed measurements - and although this is rather > “heavy” binding - I can’t see anything “recursive” about it, or otherwise > iteratively-dependent. I would guess this ArrayController should “Prepare” > its content array once - and forget about it, until time any of the > Measurements (arrangedObjects) mutate. > > I know this isn’t easy to grasp… but any idea for how to improve this will be > greatly appreciated. > > Thanks again! > > Motti Shneor > --- > Ceterum censeo Microsoftinem delendam esse > > >> On 4 Nov 2018, at 21:41, Dave Fernandes <dave.fernan...@utoronto.ca> wrote: >> >> >> >>> On Nov 4, 2018, at 2:24 PM, Motti Shneor <motti.shn...@me.com> wrote: >>> >>> Hi Dave and thanks for the reply. >>> >>> As you can see in the stack - there isn’t actually any “code” per-se that >>> runs at that time. Here is the actual method that fails: >>> >> >>> As for modifying the persistent store - I guess I don’t because the >>> database-document does not become “dirty”. If I double click one of the >>> “sample” entities that can be open - and the window is shown as expected, >>> then I close the document - there are no autosaves or changes recorded. The >>> modification time of the persistent store does not change. >>> >>> However - you’re right to point at >>> NSManagedObjectContextDidChangeNotification — how could I get it to pop? >> >> Set up an observer for that notification for your MOC and set a breakpoint >> in that observer. >> >>> >>> 3 of my NSTableColumn do have a formatter for the number presented - but >>> why should this affect the context, The columns are not “editable” >>> in-place. >> >> Just trying to narrow this down without assuming too much. >> >>> >>> I will attempt to delete these columns and try again… >>> >> > > _______________________________________________ > > 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/admin.szatmari.net%40gmail.com > > This email sent to admin.szatmari....@gmail.com _______________________________________________ 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