I guess, the cause of this problem is the fact that NSArray implements NSKeyValueCoding interface and has valueForKey method.
Obviously extending NSMutableArray is really bad idea... On Wed, Aug 26, 2009 at 9:20 PM, Francesco Romano <[email protected]>wrote: > Hi..This is a very simple question, and I was able to find a workaround.. > but I'd like to know where is the problem... > > I've this class: > > public class OrderComponent extends ERXComponent { > > > private TemporaryOrder order; > > > public OrderComponent(WOContext context) { > super(context); > } > > > public void setOrder(TemporaryOrder order) { > this.order = order; > } > > public TemporaryOrder order() { > return order; > } > > > @Override > public void awake() { > super.awake(); > setOrder(null); > } > > } > > All my order classes inherit from that class. (this only to have the order > object without rewriting it every time..). > > If I have this binding: > > CartSubtotal: WOString { > value = order.cart.cartTotal; > numberformat = "$#0.00"; > } > When I render the page I get this exception: > > valueForKey(): lookup of unknown key: 'cartTotal'. This class does not have > an instance variable of the name cartTotal or _cartTotal, nor a method of > the name cartTotal, _cartTotal, getCartTotal, or _getCartTotal' object > 'com.portonapoleone.store.utils.carti...@eac903' key 'cartTotal'> > > If I change the binding to this I have no problem: > > CartSubtotal: WOString { > value = cartTotal; > numberformat = "$#0.00"; > } > > public double cartTotal() { > return order().cart().cartTotal(); > } > > These are the other classes involved: > > public class TemporaryOrder { > private CartArray cart; > private String shipmentAddress; > > > public TemporaryOrder(CartArray c) { > cart = c; > } > > > public CartArray cart() { > return cart; > } > > public void setShipmentAddress(String shipmentAddress) { > this.shipmentAddress = shipmentAddress; > } > > public String shipmentAddress() { > return shipmentAddress; > } > > > } > > public class CartArray extends NSMutableArray<CartItem> { > > public boolean add(Prodotto p) { > return add(p,1); > } > > public boolean add(Prodotto p, int i) { > CartItem ci = new CartItem(p); > if (contains(ci)) { > CartItem oldCI = objectAtIndex(indexOf(ci)); > oldCI.quantity += i; > return true; > } > else { > ci.quantity = i; > return super.add(ci); > } > } > > > public double cartTotal() { > double total = 0; > Iterator<CartItem> it = this.iterator(); > CartItem ci = null; > while (it.hasNext()) { > ci = it.next(); > total += ci.totalPrice(); > } > > > return total; > } > > } > > Francesco > > > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list ([email protected]) > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/webobjects-dev/shkutkov%40gmail.com > > This email sent to [email protected] > -- Cheers, Michael
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
