On Mon, Nov 17, 2008 at 10:20 AM, Clark Cox <[EMAIL PROTECTED]> wrote: > On Mon, Nov 17, 2008 at 7:14 AM, Greg Robertson <[EMAIL PROTECTED]> wrote: >> I have a couple of simple ivar arrays: >> >> NSString *myString[4]; >> NSInteger myInteger[4]; >> >> How can I @synthesize these so I can access them with simple dot notation: > > I'm not sure that you can. However, this should get you the interface > that you want: > > @interface MyClass :NSObject { > NSString *myString[4]; > NSInteger *myInteger[4]; > } > > @property (readonly) NSString **myString; > @property (readonly) NSInteger *myInteger; > @end > > @implementation MyClass > > -(NSString**)myString { > return myString; > } > > -(NSInteger*)myInteger { > return myInteger; > } > > @end
This will "work", but because the properties only apply to the accessing of the actual array, not the use of the individual elements, no memory management will be done for the NSStrings and code which just does straight assignments is likely to leak or crash, or both. This may a good way to do it for primitives, but it's bad for objects. I'd also say that this is a bad approach in general (not to criticize your code, but just the original request) because you are essentially bypassing encapsulation and giving callers direct access to your internal data. There is no way to find out when someone has assigned to the variable, so you can't override the behavior and provide different ones if you need to in the future. I'd recommend either using an NSArray even though you don't want to, or writing accessors with indexes that you'd call like this: [self setMyString:@"foo" atIndex:3]; [self myIntegerAtIndex:4]; Mike _______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]