【发布时间】:2026-02-10 19:50:01
【问题描述】:
我有一个包含一堆字符串的 NSArray。每个字符串都列出了一个父子类型,如:
Tool: Saw
Fruit: Apple
Fruit: Orange
Tree: Maple
Fruit: Banana
Tree: Oak
Tool: Hammer
Tree: Cedar
我需要将它们放入的最终结构是(排序的父母和孩子):
Fruit:
- Apple
- Banana
- Orange
Tool:
- Hammer
- Saw
Tree:
- Cedar
- Maple
- Oak
我想知道如何将它们分组到它们的父类型下,按该父类型排序并对子类型进行排序。我认为最好使用 NSMutableDictionary 将它们变成键和对象。
这是我到目前为止测试的结果,但结果不是我想要的:
// Add to tree
if ([tree objectForKey:pathParent]) {
NSMutableArray *temp = (NSMutableArray *)[tree objectForKey:pathParent];
[temp addObject:name];
[tree removeObjectForKey:pathParent];
[tree setObject:temp forKey:pathParent];
} else {
[tree setObject:[NSMutableArray arrayWithObject:name] forKey:pathParent];
}//end
我该怎么做?
【问题讨论】:
-
是的,您可以使用 NSScanner 或 NSRange 类来获取字符串的不同部分。然后,如果第一部分等于字典中的一个键,则将第二部分作为值放入。
-
您是否只是在询问是否有可能,或者寻求一些有关如何做到这一点的指导? NSDictionary 的键没有固有的顺序,因此“水果”、“工具”等不会被排序。每个键的对象可以是一个 NSArray(例如 ["Apple","Banana","Orange"]),并且可以将它们排序为一个数组。
-
我需要指导。
-
哈,不是作业,我正在举一个非常笼统的例子来说明我需要解决的更复杂的问题。
标签: objective-c ios nsmutablearray nsmutabledictionary