1

我一直在试图弄清楚如何更改存储在 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 的值?谢谢您的帮助!

4

2 回答 2

2

答案是 self.myDict 为零。记录下来,你会看到。

于 2013-11-03T23:17:17.117 回答
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]);
}
于 2013-11-03T23:25:16.893 回答