Re: Master "addChildObject:" not called when adding child from an array controller !
Re: Master "addChildObject:" not called when adding child from an array controller !
- Subject: Re: Master "addChildObject:" not called when adding child from an array controller !
- From: Eric Morand <email@hidden>
- Date: Mon, 28 Sep 2009 10:25:59 +0200
Sorry, this is a typo : my method is actually called
addInvoiceLinesObject:
Le 28 sept. 2009 à 06:03, Kyle Sluder a écrit :
You named the method -addInvoiceLineObject:, but the property is
-invoiceLines? That's not going to work.
Also, NSController is sadly not KVO-compliant for dependent keys,
meaning that you can't override
+keyPathsForValuesAffectingValueForKey: and return a key path that
goes through an NSController.
--Kyle Sluder
On 9/27/09, Eric Morand <email@hidden> wrote:
Hi guys,
I'm trying to implement a rather simple functionality in my app.
I have a Core Data entity class that represents invoices (Invoice).
This class has a to-many relationship with another Core Data entity
class that represents invoice lines (InvoiceLine). My Invoice class
also has a property named "totalAmount" and my InvoiceLine class
has a
property named "lineAmount". I want the total amount of the invoice
to be re-computed when any of the invoice lines amount changes.
Searching this list, I found that I need to add the invoice instance
as an observer to the lineAmount property of any invoice line added
with the "addInvoiceLineObject:" method. It works.
But only when I explicitly use this method. When the invoice line is
added using an array controller, the method is not called at all !!!
For example, I have an array controller named "invoicesController"
that lists all the invoices of the database. Then I have an array
controller named "invoiceLinesController" whose content is bound to
"invoicesController.selection.invoiceLines". It works :
invoiceLinesController actually contains the invoice inlines of the
selected invoice in invoicesController.
Now, when I add a saleLine using the following command...
InvoiceLine * myNewInvoiceLine = [NSEntityDescription
insertNewObjectForEntityForName:@"InvoiceLine"
inManagedObjectContext:managedObjectContext];
[invoiceLinesController addObject:myNewInvoiceLine];
...the "addInvoiceLineObject:" method of the selected invoice is not
called, even if the invoice line is actually added to the
invoiceLines
mutable set of the invoice !
How am I supposed to add the invoice as an observer of the added
invoice line (myNewInvoiceLine) properties ?
Wy is the addInvoiceLineobject: method not called ? Is the array
controller inserting the invoice line using primitive methods ? Is
this the normal behavior ?
Thanks for your help,
Eric Morand.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden
--
--Kyle Sluder
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden