On May 21, 2008, at 12:05 PM, john darnell wrote:

- (id) init
{
  cityArray = [[NSArray alloc] init];
  NSString *c0 = @"New York";  //Ten NSString objects created here
  ...
  NSString *c9 = @"Virginia Beach";
  cityArray = [NSArray arrayWithObjects: c0, ...c9, nil];
  return self;
}

Here's your problem. First, you allocate and initialize the cityArray with an empty NSArray (not very useful, since you can't add items to an NSArray). Then, you leak that allocated memory by setting cityArray to an autoreleased NSArray - this is the one that's going to disappear when you exit the method. You should replace your method by something like this:

- (id) init
{
  NSString *c0 = @"New York";  //Ten NSString objects created here
  ...
  NSString *c9 = @"Virginia Beach";
  cityArray = [[NSArray alloc] initWithObjects: c0, ...c9, nil];
  return self;
}

You can also dispense with the NSString objects by inserting the string constants in the array itself:

cityArray = [[NSArray alloc] initWithObjects: @"New York", ..., @"Virginia Beach", nil];

Hope this helps!

Hank

_______________________________________________

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]

Reply via email to