Re: Instance an from an NSString Class name
Re: Instance an from an NSString Class name
- Subject: Re: Instance an from an NSString Class name
- From: email@hidden
- Date: Tue, 21 Sep 2010 23:45:07 -0600
Word up to Seth and Jerry!
I'll be a Cocoa engineer yet!
-koko
On Sep 21, 2010, at 11:07 PM, Seth Willits wrote:
On Sep 21, 2010, at 9:21 PM, email@hidden wrote:
NSString *class = [NSString stringWithCString:[data bytes]
encoding:NSASCIIStringEncoding];
Class obstacle = NSClassFromString(class);
id thisObstacle = [[obstacle alloc] initWithImage:[sender
draggedImage] andLocation:[sender draggingLocation]];
[m_obstacles addObject:thisObstacle];
I don't think I have to retain thisObstacle as m_obstacles take
ownership.
No, but you'd better release it after you add it to the array
otherwise you're leaking it. There's no such thing as "taking
ownership" in an exclusive sense. m_obstacles simply retains it when
you added it to the array. But the retain count is already 1 from
the alloc, so now it's at +2. If you remove it from the array it's
at +1 forever. You need to balance that alloc.
However, must I retain [sender draggedImage] so the code becomes:
NSString *class = [NSString stringWithCString:[data bytes]
encoding:NSASCIIStringEncoding];
Class obstacle = NSClassFromString(class);
id thisObstacle = [[obstacle alloc] initWithImage:[[sender
draggedImage] retain] andLocation:[sender draggingLocation]];
[m_obstacles addObject:thisObstacle];
Also no. The obstacle would retain it, if needed, as Jerry said.
--
Seth Willits
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden