Alternatively, a dictionary mapping keys onto blocks of type (void(^)(void)), which each compute their result. That, combined with typedef void(^voidBlock)(void); voidBlock constant(id r) { return [^{return r;} copy]; } would give you a dictionary that can store both constants and computed values.
Bob On 17 May 2013, at 12:07, Sandor Szatmari <admin.szatmari....@gmail.com> wrote: > If you go the dictionary route a simple category on NSDictionary would allow > you to compute dynamic properties such as area = length * width. > > Sandor Szatmari > > On May 17, 2013, at 1:43, Trygve Inda <cocoa...@xericdesign.com> wrote: > >> I need to keep a small (few thousand) record database of sorts. Each record >> has some pre-detertermined fields, but the user can add there own fields to >> to a limited extent. It is a pretty light use so CoreData isn't what I >> really want, plus migrating to future structures is an issue with CoreData. >> >> This will be simple objects in an NSMutableArray. >> >> I can use an array of NSMutableDictionaries or perhaps an array of >> class-based custom cocoa objects. >> >> One nice thing about the object route is that I can have some fields >> (properties) be based on a calculation rather than real storage like they'd >> be in an NSMutableDictionary. >> >> E.g. >> >> NSNumber length >> NSNumber width >> NSNumber area >> >> In an object area could be a method returning length*width instead of an >> instance var for area. >> >> The trouble comes in the fact that I need to be able to add properties at >> runtime. For the dictionary option, it is easy - just make sure the key >> names don't collide and I can add more keys to each dictionary. >> >> But for the objects I don't see a nice way to do this >> >> There is setValue:forUndefinedKey: and then each object could keep a local >> dictionary of these "defined at runtime" keys. >> >> Thoughts on this? >> >> >> >> _______________________________________________ >> >> 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/tom.davie%40gmail.com > > This email sent to tom.da...@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