• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: *** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: *** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object


  • Subject: Re: *** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object
  • From: Bill Bumgarner <email@hidden>
  • Date: Tue, 19 Feb 2008 11:46:39 -0800

On Feb 19, 2008, at 11:24 AM, Hamish Allan wrote:
On Feb 19, 2008 6:00 PM, Daniel Child <email@hidden> wrote:
- (id) init
{
       data = [[NSMutableDictionary alloc] init];
       return self = [super initWithWindowNibName: @"Step1Window"];
}
Always call [super init...] at the start of your init method.
Otherwise, your superclass could be overwriting the ivar called "data"
with, e.g., an immutable NSDictionary.

Hamish is correct in that this should be structured something like:

- init
{
	if (self = [super initWithWindowNibName: @"Step1Window"]) {
		data = [[NSMutableDictionary alloc] init];
	}
	return self;
}

Given that you declared the instance variable in the class w/the init, super better not be replacing your ivar!

So, how could data become a non-mutable object?

(1) Unarchival generally produces immutable objects unless you explicitly ask for mutable objects.

(2) You released data and replaced it with a reference to an immutable object

(3) You have a memory munching bug

b.bum

_______________________________________________

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


  • Follow-Ups:
    • Re: *** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object
      • From: Jonathan Hess <email@hidden>
References: 
 >*** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object (From: Daniel Child <email@hidden>)
 >Re: *** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object (From: "Hamish Allan" <email@hidden>)

  • Prev by Date: Re: Accessing buffers in NSData/NSMutableData under garbage collection
  • Next by Date: Re: Visual iTunes Plugins Questions
  • Previous by thread: Re: *** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object
  • Next by thread: Re: *** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object
  • Index(es):
    • Date
    • Thread