gpt4 book ai didi

objective-c - 根据数字重组 NSDictionary 键

转载 作者:行者123 更新时间:2023-11-28 19:20:36 24 4
gpt4 key购买 nike

我有一个 NSDictionary,它看起来像:

0 =     {
content = Test;
date = "2012-02-02 18:36:46 +0000";
};
1 = {
content = "#### da ####";
date = "2012-02-02 18:36:46 +0000";
};
2 = {
content = dfdffdfddfdffddf;
date = "2012-02-03 20:30:31 +0000";
};

但是如果我删除第二个键(示例中的数字 1),字典最终会变成这样:

0 =     {
content = Test;
date = "2012-02-02 18:36:46 +0000";
};
2 = {
content = dfdffdfddfdffddf;
date = "2012-02-03 20:30:31 +0000";
};

我如何重新组织它们以便在我需要时保持顺序(如 0、1、2、3)?

最佳答案

NSDictionaries 是无序的,这意味着您无法控制键的顺序,它们可能会随机更改或在 iOS 版本之间以未记录的方式更改。

您有几个选择:

  1. 维护您自己的、单独的 NSArray 键,并使用它来索引您的字典。

  2. 使用我编写的这个 OrderedDictionary 类,它基本上是这样做的,但将它全部包装在一个 NSDictionary 子类中,因此您不必做任何额外的工作:

    http://charcoaldesign.co.uk/source/cocoa#ordered-dictionary

  3. 如果您的字典键是数字(或者如果它们是字母顺序的,或者其他易于自动排序的东西),您可以在需要按顺序显示它们时使用以下方式对键进行排序:

    NSArray *keys = [dict allKeys];
    keys = [keys sortedArrayUsingSelector:@selector(compare:)];
    //now loop over keys array instead of directly over dictionary

关于objective-c - 根据数字重组 NSDictionary 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9135139/

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