How do you change a plist's root object type to NSArray in Xcode 4
Asked Answered
M

2

12

how do you change the root object type to an NSArray in a plist created in Xcode 4? It defaults to a type of NSDictionary, but I can't find a way to change it.

Milissa answered 13/5, 2011 at 11:9 Comment(2)
I'm almost certain the root object is required to be a NSDictionary. Why are you trying to accomplish this?Boser
@Nosrac: No, the root object can be anything, even a string or number, in which case it cannot have any further children, of course. To quote Apple "A root property-list object is at the top of this hierarchy, and in almost all cases is a dictionary or an array. Note, however, that a root property-list object does not have to be a dictionary or array; for example, you could have a single string, number, or date, and that primitive value by itself can constitute a property list." - tinyurl.com/6hhljuoExpeditionary
E
15

You cannot do that in Xcode4. What you can do is either create a plist by hand with an array as root object or take an existing one (of course this one should be an empty one, since converting one with rows makes no sense) and modify it by replacing <dict/> with <array/> (you may have to first convert it to an XML plist, if it is a binary one). Once the root object is an array, Xcode seems to keep it that way and when you select to add a row, it will immediately put a number as key (since nothing else is possible, of course). Maybe you should file a feature request at https://bugreport.apple.com

Expeditionary answered 13/5, 2011 at 11:35 Comment(1)
You can do it in Xcode 4, though. But not in the normal editor. You can right-click on the file and choose Open As... and then "Source Code" and Xcode will let you edit it as a text file.Jodhpur
D
-2

1- Create the PLIST in XCode. 2- Open the empty plist file created. 3- Right click on the white space of the plist. 4- Add Row. 5- In the Type column, select Array.

Denudation answered 13/5, 2011 at 11:16 Comment(1)
This is not what the poster meant. When I do what you suggested above, I get a plist with a root object still being a dictionary, with one key/value pair, where the key is named New Item and the value is an array.Expeditionary

© 2022 - 2024 — McMap. All rights reserved.