我正在使用 Xcode 4.2.1 编写一些 iOS 代码,我注意到当我通过 plist 文件解析并将所有内容放在一个 中时,NSDictionary
所有<string>
值NSString
都以.<real>
<integer>
<true/>
NSNumber
有没有办法提取所有键和值,但将每个值放在匹配的数据类型中?
例如:
把<string>Hi There</string>
价值放在一个NSString
把<real>1.23</real>
价值放在一个float
把<integer>4</integer>
价值放在一个NSInteger
将<true/>
或<false/>
或<boolean>1</boolean>
值放入 BOOL
我已经阅读了很多帖子,但找不到任何可以帮助我做到这一点的东西。我什至不确定如何确定一个值周围的包装元素(术语可能是错误的)是什么!
NSDictionary
只有NSString
左右NSNumber
这行不通。
NSArray
/将NSMutableArray
独立保存每个值的数据类型,还是需要添加第三项(值数据类型)与键和值一起存储?
也许我正在尝试重做已经完成的事情?
编辑:这里有更多关于我想要做的事情的细节......
我想要做的是从 XML 文件中读取一组键/值,然后将这些键作为游戏中的变量提供(键是变量名,变量设置为与键关联的值)。该变量将通过类似的方法检索myVar = [getVar @"name_of_key"];
编辑:这是我目前将 XML 放入 NSDictionary 的方式...
NSDictionary *dictServer = nil;
CFPropertyListRef plist = CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)someXMLdata, kCFPropertyListImmutable, NULL);
if ([(id)plist isKindOfClass:[NSDictionary class]]) {
dictServer = [(NSDictionary *)plist autorelease];
}