【问题标题】:comparing object attribute in one array to an object attribute in another array将一个数组中的对象属性与另一个数组中的对象属性进行比较
【发布时间】:2009-07-19 15:58:55
【问题描述】:

我似乎在目标 c 中访问和比较 NSMutableArrays 中的对象时遇到困难。 我很新,所以在解释时,一些代码会很好。 我有一个字符类和一个字符类。代码如下所示:

@implementation character

@synthesize IDE, name;

- (void) dealloc {
    [text release];
    [super dealloc];
}

@implementation characterfound

@synthesize IDE;

- (void) dealloc {
    [text release];
    [super dealloc];
}

我有两个数组,其中填充了名称和 ID。 如果我只想比较 id 来构建一个新数组或用它做其他事情。 我该怎么做。

例如

**特点[]** 姓名:乔·史密斯 IDE:ik321 姓名:詹姆斯·史密斯 IDE:ik32a **找到的字符[]** IDE:2343k IDE:ik32a

所以当我比较两者时,会找到 id,我可以将名称放在另一个数组中。 或者输出它..

我将尝试重新提出我的问题,并更具体地回答顺便说一句。 我有两个类字符类 @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 文件时,它会遇到不同的标签等并相应地填充我的字符类

例如

在 foundcharacter 中还有一些其他的 xml,如下所示:

所以我的第一个数组将填充字符对象,包括它的属性 并且第二个数组 foundcharacter 也是如此。 字符数组 = [character1 name="johnson" id="jfja33", character2 name="smith" id="sdfae23"]

字符发现数组 [characterfound ide="jfja33 , characterfound2 ide="jap234" ]; 所以我的数组正在填充对象及其属性,我想比较属性(如果可能的话)并创建一个输出。

【问题讨论】:

  • 我看不出您发布的代码与您的问题有什么关系。为了清楚起见,也许您可​​以重新表述您的问题并提供相关代码。
  • 如果您的帖子不可读,没有人会回答! (我希望我有 2000 个代表)

标签: objective-c arrays object compare


【解决方案1】:

如果通过 ID 查找字符对象是一种常见操作,您应该创建一个从 id 到字符对象的映射,此时从第二个数组中查找将是微不足道的:

NSMutableDictionary* charactersById = [NSMutableDictionary dictionary];
for (Character* character in characters) {
    [charactersById setObject:character forKey:[character IDE]];
}

(请注意,我已将示例代码的类设为大写;您应该在代码中做同样的事情,因为编写忽略标准语言约定的代码在任何语言中都是一个坏主意;它显着降低了代码的可读性你的代码。)

【讨论】:

    猜你喜欢
    • 2022-07-12
    • 2019-04-06
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2022-11-21
    相关资源
    最近更新 更多