Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Proper place for functions in KVC paths?




On Aug 29, 2006, at 2:20 PM, John Larson wrote:

Hello,


I think the api implies they all work and will have differing outcomes depending on what you would like to 'sum' or 'count' etc. e.g., Consider the keypath: 'company.people.accounts.totalLiability'.


If I want to know how much is owed in total:
Number total = ( Number )company.valueForKeyPath ( "@sum.people.accounts.totalLiability" );

I am curious if you have actually used this?

Obviously not enough! Bummer...

I meant company.valueForKeyPath ( "email@hiddenLiability" ) - but that's still wrong. You can only provide toOne keyPaths after @sum it seems (i.e., "email@hiddenLiability" ) which will succeed (having now tested).


You can think of the keypath as a tokenized string that is evaluated recursively through the elements toward the end of the string and the @operators are looking for scalar values to iterate over and accumulate. So, for company.people.account.totalLiability where people is the only array, then email@hiddenLiability would produce the sum as desired. Suppose, however, that each person had multiple accounts. The following would also be valid: email@hiddenemail@hiddenLiability.

Now _that_ is some clever thinking!


The point of this was to not leave the thread with the idea that there can only be one @operator in a keypath.

And I will also add that it is quite easy to hook into KVC to implement your own "magic" operators. IIRC, there are some quite interesting things in Wonder as well as WOOgnl.


Chuck

--

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects





_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/email@hidden

This email sent to email@hidden
References: 
 >Proper place for functions in KVC paths? (From: "John Huss" <email@hidden>)
 >Re: Proper place for functions in KVC paths? (From: Chuck Hill <email@hidden>)
 >Re: Proper place for functions in KVC paths? (From: Lachlan Deck <email@hidden>)
 >Re: Proper place for functions in KVC paths? (From: Chuck Hill <email@hidden>)
 >Re: Proper place for functions in KVC paths? (From: Lachlan Deck <email@hidden>)
 >Re: Proper place for functions in KVC paths? (From: John Larson <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.