3
votes

Am I misunderstanding something about bindings? I bind (an NSArrayController's content) to an NSDictionary's "allValues" array, and it thinks it's empty. I bind to a random object with a property that I've set to be that same NSDictionary's "allValues" array, and it works fine.

Is this expected behavior, or am I doing something wrong? Furthermore, if this is expected, what is the standard way to deal with this? Making relatively purposeless objects just to hold arrays in properties so I can bind to them seems ugly.

1
If the keys are completely irrelevant, should the data be stored primarily in a dictionary? - dreamlax
The keys are important, just not in this one particular view of the data. - andyvn22
There are many imaginable situations where keys are totally irrelevant to a view, but completely useful to a controller object. - ctpenrose

1 Answers

4
votes

Binding to @"allValues" means the dictionary is sent a -valueForKey:@"allValues" message. The dictionary then interprets that by looking up -objectForKey:@"allValues" which is not what you are after in this case.

Try binding to @"@allValues" instead (see the -[NSDictionary valueForKey:] docs for more details)