在NSMutableDictionary中更改NSNumber的值

时间:2013-11-03 23:08:47

标签: ios objective-c nsdictionary

我一直在试图弄清楚如何更改我存储在NSMutableDictionary中的NSNumber的值。我不得不使用NSNumber,因为只有对象可以存储在NSDictionary中。这就是我现在所拥有的,并没有按照我的预期行事。

    int newInt = [self.myDict[@"key"] intValue] + 100;
    NSLog(@"%d",newInt);
    [self.myDict setObject:@(newInt) forKey:@"key"];
    NSLog(@"%d",[self.myDict[@"key"] intValue]);

第一个NSLog按照我的预期打印100但第二个打印0.我应该如何更改该字典中NSNumber的值?谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

答案是self.myDict是零。记录它,你会看到。

答案 1 :(得分:1)

你需要:self.myDict = [NSMutableDictionary new];在设置值之前。

示例:

@interface AppDelegate ()
@property (nonatomic, strong) NSMutableDictionary *myDict;
@end

@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    self.myDict = [NSMutableDictionary new];

    int newInt = [self.myDict[@"key"] intValue] + 100;
    NSLog(@"%d",newInt);
    [self.myDict setObject:@(newInt) forKey:@"key"];
    NSLog(@"%d",[self.myDict[@"key"] intValue]);
}