Re: resetting ivars safely
Re: resetting ivars safely
- Subject: Re: resetting ivars safely
- From: Daniel Child <email@hidden>
- Date: Wed, 12 Sep 2007 21:09:52 -0400
The first time, retain count is 1, and the objects are all there (4
objects in the array).
Later on, the retain count is 0, and there are no objects.
But doesn't that mean there is a problem with the setters paradigm of
"release then copy"?
On Sep 12, 2007, at 5:20 PM, Shawn Erickson wrote:
On 9/12/07, Daniel Child <email@hidden> wrote:
HI All,
I am trying to find a way to safely reset or reinitialize the
instance variables of a singleton object. A "word parser" behaves
correctly the first couple of times it is used, but then self-
destructs. Everything goes fine the first time through, but on the
second or third attempt to reset the wordCandidates ivar, an EXC-BAD-
ACCESS signal is generated just prior to releasing the ivar in its
setter (using the release, then copy paradigm). Since the retain
count prior to releasing is 1, I am mystified.
Here is the relevant code. Thanks much....
// setter for wordCandidates ivar
- (void) setWordCandidates: (NSMutableArray *) wc
{
if (wc != wordCandidates) {
printf("wordCandidates retain count prior to
release is %i.\n",
[wordCandidates retainCount]); // equal to 1
[wordCandidates release]; // EXC-BAD-ACCESS COMES
HERE
wordCandidates = [wc mutableCopy];
}
}
What do you see in the run log if you replace the printf above with
the following line (is it a mutable array with objects that you
expect, etc.)...
NSLog(@"wordCandidates=%@", wordCandidates);
Also are you sure the bad access is at the exact message send or does
it happen while the target object is handling that message (in other
words while the NSMutableArray is releasing the objects it contains,
assuming your release triggers deallocation of the array).
-Shawn
_______________________________________________
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