ARC Extending Lifetime of Objects
ARC Extending Lifetime of Objects
- Subject: ARC Extending Lifetime of Objects
- From: Andreas Grosam <email@hidden>
- Date: Mon, 23 Jul 2012 10:00:52 +0200
Suppose, I have C-arrays defined as follows:
int count = [dictionary count];
id __unsafe_unretained values[count];
id __unsafe_unretained keys[count];
I fill these arrays with:
[dictionary getObjects:values andKeys:keys];
Now, I would like to "reuse" these arrays through holding objects maintained by ARC (if possible):
for (int i = 0; i < count; ++i) {
keys[i] = [keys[i] copy];
values[i] = [values[i]] copy];
}
NSDictionary *other = [NSDictionary dictionaryWithObjects:values forKeys:keys count:count];
This won't work in ARC, since the arrays are declared __unsafe_unretained and this would cause the newly created object immediately be deallocated once it is assigned to the array's element.
What I would like to avoid is to use separate arrays (appropriately declared), and also avoid to disable ARC and maintain the release counts manually.
Is there a way to extend the lifetime of the created objects, or is there a way to "re-declare" the arrays so that ARC can maintain the references - or is there any other simple "trick"?
Thanks for suggestions! ;)
Andreas
_______________________________________________
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