我似乎在访问和比较目标c中的NSMutableArrays中的对象时遇到了困难。 我很新,所以在解释时,一些代码会很好。 我有一个角色类和一个characterfound类。代码如下所示:
@implementation character
@synthesize IDE, name;
- (void) dealloc {
[text release];
[super dealloc];
}
@implementation characterfound
@synthesize IDE;
- (void) dealloc {
[text release];
[super dealloc];
}
我有两个数组正在填充名称和ID。 如果我想只比较id来构建一个新数组或用它做其他事情。 我该怎么做。
例如
**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类
@interface characterfound : NSObject {
// attributes
//NSInteger IDE;
NSInteger type;
NSString *IDE;
}
当我解析xml文件时,会遇到不同的标签等,并相应地填充我的字符类
例如
在findcharacter中还有一些其他的xml如下:
所以我的第一个数组将填充包含它的属性的角色对象 第二个数组的发现字符也是如此。 characterarray = [character1 name =“johnson”id =“jfja33”,character2 name =“smith”id =“sdfae23”]
characterfoundarray [characterfound ide =“jfja33,characterfound2 ide =”jap234“]; 所以我的数组充满了对象及其属性,我想比较属性(如果可能的话)并创建输出。
答案 0 :(得分:0)
如果通过ID查找字符对象是一种常见操作,则应创建从id到字符对象的映射,此时从第二个数组执行查找将是微不足道的:
NSMutableDictionary* charactersById = [NSMutableDictionary dictionary];
for (Character* character in characters) {
[charactersById setObject:character forKey:[character IDE]];
}
(请注意,我已经为示例代码创建了大写的类;您应该在代码中执行相同的操作,因为编写忽略标准语言约定的代码在任何语言中都是一个坏主意;它会大大降低您的可读性你的代码。)