2011-12-11 48 views
2

我已经创建了我的应用程序来表示的两名球员控件的用户默认两本字典,因为这样的:我的共享用户默认值控制器绑定有什么问题?

Player1 = { 
    MoveLeft = 0; 
    MoveRight = 2; 
    MoveDown = 1; 
, 
Player2 = { 
    MoveLeft = 40; 
    MoveRight = 41; 
    MoveDown = 37; 
} 

当我访问[NSUserDefaults.standardUserDefaults valueForKeyPath:@"Player2.MoveLeft"],我得到一个NSNumber40

我想用常规绑定机制将几个文本字段绑定到这些值。当我选择的文本字段,这是显示的内容:

Bind To = Shared User Defaults Controller, Controller Key = value, Model Key Path = Player2.MoveLeft, Value Transformer = SRKeyCodeTransformer

然而,文本字段为空,当我运行应用程序。 (即使我删除了值转换器。)如果我尝试绑定到顶级属性(例如,如果我将foo定义为值为40的默认值),它就可以工作。

我的绑定有什么问题?我如何访问嵌套字典中的元素?

回答

1

我不记得确切的位置,但我找到了我的答案:不能绑定到用户默认值中的非顶级对象,因为集合是不可变的。