comparing object attribute in one array to an object attribute in another array
我似乎在访问和比较目标C中的非突变数组中的对象时遇到困难。我很新,所以在解释的时候,一些代码会很好。我有一个角色类和一个角色发现类。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @implementation character @synthesize IDE, name; - (void) dealloc { [text release]; [super dealloc]; } @implementation characterfound @synthesize IDE; - (void) dealloc { [text release]; [super dealloc]; } |
我有两个数组,上面都是名字和ID。如果我只想比较ID来构建一个新数组或用它做其他事情。我该怎么做呢?
例如
1 2 3 4 5 6 7 8 9 10 11 | **character[]** name :joe smith IDE: ik321 name :james smith IDE: ik32a **characterfound[]** IDE:2343k IDE:ik32a |
号
所以当我比较这两者时,会找到ID,我可以将名称放入另一个数组中。或者输出。
我将尝试重新定义我的问题,并更具体地回答btw。我有两个班性格班
@interface character : NSObject {
// attributes
NSInteger type;
NSInteger rep1, rep2, rep3, rep4, rep5;
NSString *name;
NSString *IDE;
}
。而characterfound类
江户十一〔一〕号
当我分析一个XML文件时,它会遇到不同的标记,并相应地填充我的characterClass。
例如埃多克斯1〔2〕
此外,foundcharacter中还有一些其他XML,比如:
埃多克斯1〔2〕
所以我的第一个数组将填充字符对象,包括它的属性第二个数组foundcharacter也是。字符数组=[字符1 name="Johnson"id="JFJA33",字符2 name="Smith"id="SDFae23"]
字符查找数组[characterFound ide="jfja33,characterFound2 ide="jap234"];所以我的数组中充满了对象及其属性,我想比较这些属性(如果可能的话)并创建一个输出。
如果按ID查找字符对象是一种常见的操作,则应创建一个从ID到字符对象的映射,此时从第二个数组进行查找将非常简单:
1 2 3 4 | NSMutableDictionary* charactersById = [NSMutableDictionary dictionary]; for (Character* character in characters) { [charactersById setObject:character forKey:[character IDE]]; } |
(请注意,我已经将示例代码的类设置为大写;您应该在代码中这样做,因为编写忽略标准语言约定的代码在任何语言中都是一个坏主意;它显著降低了代码的可读性。)