• 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
NSMutableDictionary drives me mad.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NSMutableDictionary drives me mad.


  • Subject: NSMutableDictionary drives me mad.
  • From: Тимофей Даньшин <email@hidden>
  • Date: Tue, 10 Mar 2009 21:33:09 +0300

Hello.
I am writing a method for searching for the longest common substring. The idea is to store the pieces of that LCS in an NSMutableDictionary with TMIntWrappers as keys and NSMutableStrings as values.
Now, TMIntWrapper is the class i created for wrapping ints into objects. It stores an int, gives access to it via the .value property, adopts the NSCopying protocol and implements the -(BOOL) isEqual: (id) object method.
The logic is, if the dictionary already has a value for a given key, the new value should be appended to the current value, if the dictionary doesn't have any value for that key yet, a new NSMutableString is created and stored in that dictionary.


But I just cannot understand why, within one and the same cycle, some values get appended, and some are stored with seemingly different TMIntWrapper keys with the same value (even though the isEqual method returns YES if the int values of two int wrappers are equal).

Here is the method in question:

- (void) addToAddedCharAtPosition:(int)charPosition withKey: (TMIntWrapper *)key {
NSLog (@"___________________________________________________________________________________________ ");
NSLog (@" The key is: %@", key);
NSLog (@" The object for the key is: %@", [addedToDbString objectForKey:key]);
if ([addedToDbString objectForKey:key] == nil) {
NSMutableString *ms = [[NSMutableString alloc]initWithString:[inText substringWithRange:NSMakeRange(charPosition-1, 1)]];
NSLog(@" The ms string is: %@", ms);
[addedToDbString setObject:[ms mutableCopy] forKey:[key copy]];
NSLog(@" We are trying to add this: %@", [inText substringWithRange:NSMakeRange(charPosition-1, 1)]);
NSLog (@"AND NOW: The object for the key is: %@", [addedToDbString objectForKey:key]);
return;
}
NSLog (@"We are trying to add this: %@",[inText substringWithRange:NSMakeRange(charPosition-1, 1)]);
[[addedToDbString objectForKey:key] appendString:[inText substringWithRange:NSMakeRange(charPosition-1, 1)]];
}


And here is what those "NSLog"s generate.



2009-03-10 21:09:48.871 SQL doc[13532:10b] ___________________________________________________________________________________________
2009-03-10 21:09:48.872 SQL doc[13532:10b] The key is: 0
2009-03-10 21:09:48.872 SQL doc[13532:10b] The object for the key is: (null)
2009-03-10 21:09:48.873 SQL doc[13532:10b] The ms string is: x
2009-03-10 21:09:48.874 SQL doc[13532:10b] We are trying to add this: x
2009-03-10 21:09:48.875 SQL doc[13532:10b] AND NOW: The object for the key is: (null)
2009-03-10 21:09:48.875 SQL doc[13532:10b] ___________________________________________________________________________________________
2009-03-10 21:09:48.877 SQL doc[13532:10b] The key is: 0
2009-03-10 21:09:48.877 SQL doc[13532:10b] The object for the key is: (null)
2009-03-10 21:09:48.879 SQL doc[13532:10b] The ms string is: e
2009-03-10 21:09:48.880 SQL doc[13532:10b] We are trying to add this: e
2009-03-10 21:09:48.880 SQL doc[13532:10b] AND NOW: The object for the key is: e
2009-03-10 21:09:48.880 SQL doc[13532:10b] ___________________________________________________________________________________________


Please help me...







_______________________________________________

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: NSMutableDictionary drives me mad.
      • From: Andy Lee <email@hidden>
    • Re: NSMutableDictionary drives me mad.
      • From: Clark Cox <email@hidden>
    • Re: NSMutableDictionary drives me mad.
      • From: Eric Gorr <email@hidden>
    • Re: NSMutableDictionary drives me mad.
      • From: Alexander Heinz <email@hidden>
  • Prev by Date: Re: Garbage collected and non-garbage collected
  • Next by Date: Re: Garbage collected and non-garbage collected
  • Previous by thread: Re: NSSlider changed notification
  • Next by thread: Re: NSMutableDictionary drives me mad.
  • Index(es):
    • Date
    • Thread