Folks;

I have recently converted to XC & IB 3.2
I've updated my project to be a 3.2 project using a baseSDK of 10.6 with deployment target of 10.4

I've run the static analyzer and have no analyzer issues as well as no compiler nor IB warnings I'm feeling good about this but now code that worked under Leopard is no longer working.

I have an instance variable which is an NSMutableDictionary * myBaseSettings I run a method which steps thru the keys in a local NSDictionary (sessionSettings) to possibly set some values into myBaseSettings

        NSDictionary * sessionSettings = ...;
        NSArray *values, *keys = [sessionSettings allKeys];
        int dictCount = [keys count];
        if (dictCount>0) {
                values = [sessionSettings allValues];
                NSString *thisKey, *thisValue;
                for (i=0 ; i<dictCount; i++) {
                        thisKey = [keys objectAtIndex:i];
                        thisValue = [values objectAtIndex:i];
                        if ([thisKey isEqualToString:interestingKey1]) {
                                //NOTE: ALL of these cause the same exception
                                        [myBaseSettings setValue:thisValue 
forKeyPath:thisKey]; 
                                        [myBaseSettings setValue:thisValue 
forKey:thisKey];     
                                        [myBaseSettings setObject:thisValue 
forKey:thisKey];    
                                } else if ([thisKey 
isEqualToString:interestingKey2]) {
                                        ...
                        } else {
                                [myBaseSettings setValue:thisValue 
forKeyPath:thisKey];
                        }
                }
        }

(NOTE: I use setValue:forKePath because the sessionSetting keys can be dictionaries)

I get an exceptions thrown whenever thisKey is a normal 'key' (ie "workPhone") but NOT when thisKey is a 'keyPath' (ie. "nameDict.firstName") '*** -[NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'
The key and value are both valid strings (verified using 'po' gdb)

It seems like somehow the instance variable is not being treated as an NSMutableDictionary but why?

Thanks for any thoughts on this - I'm baffled!
Steve
_______________________________________________

Cocoa-dev mailing list ([email protected])

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