我正在使用NSDictionaries
数组来存储一些棒球队,每队都有一个'名字'键。当用户决定他有兴趣接收特定团队的分数更新时,我会收集应该发送警报的内容。我想为所选团队存储该号码。
我看到两个选项,我不确定哪个更好:
第二个选项对我来说似乎更优雅 - 如果没有价值,我不会存储空键。是吗?
奖励积分:如何使用谓词来提取所有没有此密钥的团队词典?我的最大努力是
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(Innings != nil)"];
但我认为期望在每个字典上找到一个'Innings'键,并搜索零值。
答案 0 :(得分:1)
Cocoa中的字典无法保存nil
值,因此在这种情况下,您必须保留未设置值或使用占位符值来处理否则使用nil
的情况。
如果您知道要为字典定义的所有字段,那么您可能需要考虑定义具有声明属性的自定义类来保存它们。在这种情况下,将属性设置为nil没有问题,并且更明确地定义了所有内容。代码中的注释还将帮助未来的程序员理解编写代码时的想法。字典不是那么好。
你的谓词很好,但你可以跳过括号。