Sprite Kit iOS 7 - SKNode的UserData属性无法存储值

7

我认为这应该很容易实现,但是我不明白为什么我的NSMutableDictionary属性没有按照我预期的那样工作。

[self.testSprite.userData setValue:@"CAT" forKey:@"key"];
NSLog(@"%@", [self.testSprite.userData objectForKey:@"key"]);
NSLog(@"%lu", [self.testSprite.userData count]);

我返回了(null)和0。

使用spriteNode userdata有什么特别的技巧吗?

谢谢

1个回答

20

userData 属性最初为 nil。您需要先创建一个字典并将其分配给 userData 属性:

self.testSprite.userData = [NSMutableDictionary dictionary];

[self.testSprite.userData setValue:@"CAT" forKey:@"key"];
NSLog(@"%@", [self.testSprite.userData objectForKey:@"key"]);
NSLog(@"%lu", [self.testSprite.userData count]);

2
这个几乎把我搞崩了...谢谢!为什么在 nil 上尝试 setValue 不会抛出警告/错误,对我来说真是莫名其妙。 - Scooter
这是疯狂的!谢谢。 - mikemike396

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接