我一直在试图弄清楚如何更改我存储在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的值?谢谢你的帮助!
答案 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]);
}