2013-09-29 16 views
7

我認爲這項工作很容易,但我不明白爲什麼我的NSMutableDictionary屬性不能按我的預期工作。Sprite Kit iOS7 - SKNode UserData屬性不存儲值

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

我重新調整(空)和0

是否有使用spriteNode用戶數據一個特殊的技巧?

謝謝

回答

20

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上設置值不會導致警告/錯誤超出了我的想象。 – Scooter

+0

哈哈,這太瘋狂了!謝謝 – mikemike396