gpt4 book ai didi

ios - 字典与一堆 "if"和 "return"

转载 作者:行者123 更新时间:2023-11-28 18:30:09 25 4
gpt4 key购买 nike

我对一个 iOS 应用程序中使用的两种方法感到困惑。假设我可以创建一个字典:

NSDictionary *numberDict = @{
@"First" : [NSNumber numberWithInt:1],
@"Second" : [NSNumber numberWithInt:2]};

后来,

NSNumber *n = [numberDict objectForKey:@"First"]);

或者只写一个返回数字的方法:

-(NSNumber *) numberMethod: (NSString *)number{
if([number isEqualToString @"First"]) return [NSNumber numberWithInt:1];
if([number isEqualToString @"Second"]) return [NSNumber numberWithInt 2];
}

然后,

NSNumber *n = [self numberMethod: @"First"];

更推荐哪种方式(优势与劣势),哪种方式在成员数量多于我的示例中的两种方式时表现更好?

最佳答案

访问字典的元素应该是一个O(1) 操作。另一方面,if 条件对于相同的操作需要相当多的时间。所以考虑到代码的速度和整洁度,NSDictionary 更好。另一个优点是,您可以根据需要向字典中添加任意数量的元素,因此它更加动态(例如在运行时将元素加载到字典中,例如 Web 服务响应)。这将使代码更加灵活。

另一方面,考虑到内存,NSDictionary 对象显然比该方法占用更多内存,这是我看到该方法的唯一优势。

如果你问我会做什么,我当然会选择 NSDictionary

关于ios - 字典与一堆 "if"和 "return",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33798745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com