Ios 对键和值进行排序
我很难在IOS中从propertylist中排序密钥 我正在将列表加载到一个字典中,从中提取出一个数组的键,并使用metode对它们进行排序:“sortedArrayUsingSelector'selector(compare:)” 当我尝试使用这些键时,这些值似乎没有按照这些键排序? Exsample:(键值) 未排序:Assens 0、Odense 1、Nyborg 1、Middelfart 0。 排序:阿森1,欧登塞1,尼堡0,米德尔法特0 `Ios 对键和值进行排序,ios,arrays,sorting,dictionary,plist,Ios,Arrays,Sorting,Dictionary,Plist,我很难在IOS中从propertylist中排序密钥 我正在将列表加载到一个字典中,从中提取出一个数组的键,并使用metode对它们进行排序:“sortedArrayUsingSelector'selector(compare:)” 当我尝试使用这些键时,这些值似乎没有按照这些键排序? Exsample:(键值) 未排序:Assens 0、Odense 1、Nyborg 1、Middelfart 0。 排序:阿森1,欧登塞1,尼堡0,米德尔法特0 ` `为什么您认为字典会知道您正在对其键数组的一
`为什么您认为字典会知道您正在对其键数组的一个不相关副本进行排序?您必须创建另一个字典,如下所示:
NSArray *keys = [[originalDict allKeys] sortedArrayUsingSelector:@selector(compare:)];
NSMutableDictionary *newDict = [NSMutableDictionary dictionary];
for (id key in keys)
[newDict setObject:[originalDict objectForKey:key] forKey:key];
现在
newDict
包含已排序的键和值。谢谢,但现在应用程序崩溃了。。。你能给我解释一下这句话吗?for(id key in key)[newDict setObject:[dictionary objectForKey:key]forKey:key];如果不是很明显,你真的不应该开发应用程序。。。这是一个for循环,通过按相同顺序添加对象的所有排序键进行迭代。顺便说一句,除非你发布准确的错误消息,否则我帮不了什么忙。我试图注释som行,但问题似乎是数组*键的创建。我可能键入了错误的内容。我只是复制并粘贴了您的代码,没有错误-但键没有排序。您是否使用newDict
?这不会对原始字典的键进行排序,而是创建一个新字典。
NSArray *keys = [[originalDict allKeys] sortedArrayUsingSelector:@selector(compare:)];
NSMutableDictionary *newDict = [NSMutableDictionary dictionary];
for (id key in keys)
[newDict setObject:[originalDict objectForKey:key] forKey:key];