gpt4 book ai didi

objective-c - 如何解析 XML/PLIST 文件并将每个键的值放入适当的数据类型?

转载 作者:行者123 更新时间:2023-11-29 04:33:00 25 4
gpt4 key购买 nike

我正在使用 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只有NSStringNSNumber所以这行不通。

请问NSArray/NSMutableArray独立保存每个值的数据类型,还是需要添加第三项(值数据类型)来与键和值一起存储?

也许我正在尝试重做已经完成的事情?

编辑:以下是有关我正在尝试执行的操作的更多详细信息...

我想要做的是从 XML 文件中读取一组键/值,然后将这些键用作游戏中的变量(键是变量名称,变量设置为与 key )。该变量将通过类似 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];
}

最佳答案

NSArray 和 NSDictionary 要求您插入对象(例如 NSNumber),而不是基元(例如 int)。您需要原始数据类型有什么原因吗?

更新:NSNumber 有类方法来包装原始值。

aFloat = [NSNumber numberWithFloat:floatVar];
aBool = [NSNumber numberWithBool:boolVar];

要检索值,您可以使用

[aFloat floatValue]
[aBool boolValue]

关于objective-c - 如何解析 XML/PLIST 文件并将每个键的值放入适当的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11437949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com