gpt4 book ai didi

ios - 如何在不改变顺序的情况下从plist加载数据

转载 作者:行者123 更新时间:2023-11-29 00:41:24 30 4
gpt4 key购买 nike

我想从以下 plist 文件加载 NSDictionary,而不改变它的顺序。 Plist file
这个 plist 文件是 Here .
我研究了很多东西,我发现OrderedDictionaryM13OrderedDictionary .
首先,我尝试了 NSDictionary (我知道它失败了)

- (void)testNSDictionary {
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:filePath];
NSLog(@"%@",dictionary);
}

然后得到如下日志:

{
G = {
R = {
H = "";
S = "";
};
V = {
T = "";
};
};
S = {
B = {
L = "";
};
O = {
K = "";
L = "";
};
V = {
T = "";
};
};
}

这与原始plist文件的顺序完全不同! (我知道)
我认为这是按字母顺序排列的。
接下来,我使用以下代码尝试了 OrderedDictionary:

#import "OrderedDictionary.h"
- (void)testOrderedDictionary {
OrderedDictionary *dictionary = [OrderedDictionary dictionaryWithContentsOfFile:filePath];
NSLog(@"%@",dictionary);
}

然后得到如下日志:

{
G = {
R = {
H = "";
S = "";
};
V = {
T = "";
};
};
S = {
B = {
L = "";
};
O = {
K = "";
L = "";
};
V = {
T = "";
};
};
}

嗯?这与 NSDictionary 的结果相同。
最后,我使用以下代码尝试了 M13OrderedDictionary。

#import "M13OrderedDictionary.h"
- (void)testM13OrderedDictionary {
M13OrderedDictionary *dictionary = [M13OrderedDictionary orderedDictionaryWithContentsOfFile:filePath];
NSLog(@"%@",dictionary);
}

然后得到如下日志:

{
}

没有返回任何内容。我不明白这是怎么回事。
我想知道如何正确使用 OrderedDictionary 和 M13OrderedDictionary。如果它们已经过时,我想知道将 plist 文件解析为 NSDictionary 或 NSArray 或其他内容的替代方法。

注意:我不想更改 plist 文件,因为这种格式最适合我。

最佳答案

OrderedDictionary 不能存在于 plist 文件中。好吧,它可以在某种意义上,但不是在您显示的 plist 文件中。 Plist 文件知道 NSArray、NSDictionary 和其他一些可以作为这些元素的基本类——仅此而已。您的 plist 文件包含一个 NSDictionary,而不是一个 OrderedDictionary。所以当你加载它时,你只是要取回一个普通的 NSDictionary。

Note: I don't want to change plist file, because this format is the best for me

很好。但随后您将加载一个普通的 NSDictionary。

关于ios - 如何在不改变顺序的情况下从plist加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39397153/

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