2013-09-29 50 views
7

Tôi nghĩ công việc này dễ dàng, tuy nhiên tôi không thể hiểu tại sao thuộc tính NSMutableDictionary của tôi không hoạt động như tôi mong đợi.Sprite Kit iOS7 - Thuộc tính UserData của SKNode không lưu trữ các giá trị

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

Tôi retuning (null) và 0.

Có một thủ thuật đặc biệt để sử dụng userdata spriteNode?

Cảm ơn

Trả lời

20

Thuộc tính userData ban đầu là không. Bạn phải tạo từ điển và chỉ định từ điển trước:

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

Điều này gần như đã giết tôi ... cảm ơn! Tại sao cố gắng setValue trên một nil không ném một cảnh báo/lỗi là vượt ra ngoài tôi. – Scooter

+0

Rất tiếc, điều này thật điên rồ! Cảm ơn bạn – mikemike396

Các vấn đề liên quan