2012-02-16 72 views
0

条件语句基本上我的字典里是这样的:性能与Objective-C和的NSMutableDictionary

object:[NSNumber numberWithBool:] key: [NSNumber numberWithInteger:ID]

我要添加对象的NSMutableDictionary如果不存在他们。如果有两个相同的ID并且一个值为YES,我也想用YES覆盖NO的任何值。

例如

ID:5, YES 
ID:5, NO 
ID:5, YES 

我想在我的字典中得到结果为ID:5 YES。我这样做:

if ([dict objectForKey:[NSNumber numberWithInteger:conditionsListID]] != nil) { 
    [dict setObject:[NSNumber numberWithBool:theValue forKey:[NSNumber numberWithInteger:conditionsListID]; 
else { 
    if (theValue) { 
     [dict setObject:[NSNumber numberWithBool:theValue forKey:[NSNumber numberWithInteger:conditionsListID]; 

    } 
} 
} 

,我在想,如果它很重要,如果我连检查是否已经存在的值没有或者如果我只是简单地覆盖它,如果我的新的价值到底有YES或没有,因为,YES是我想要的。两者之间真的有什么区别吗?谢谢。

+0

你是否需要明确地记录“NO”值,或者在字典中不存在是否足够? – 2012-02-16 23:31:53

回答

1

只需调用setObject:forKey:并且字典将处理您想要的逻辑。根据API文档:

“如果字典中已经存在aKey,则该字典的该键的上一个值对象将发送释放消息,并由anObject取代它。”