- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Objective-C 的字典中添加键。代码如下:
我有一个类 MyClass,其头文件包含:
@property (nonatomic) NSMutableDictionary *dict;
初始化如下:
_dict = [[NSMutableDictionary alloc] init];
然后我尝试向其中添加键:
- (void) addOrModify:(myKey*) key withValue:(myValue *) value {
[self.dict setObject:value forKey:key];
NSLog(@"Adding the key %@ %p with value %@ %p",[key description],key,[value description],value);
NSLog(@"%@",[self.dict description]);
}
这是我添加不同的键/值时得到的结果:
Adding the key (key1) 0x7f9dc3590070 with value (value1) 0x7f9dc358e760
{
"(key1)" = "(value1)";
}
Adding the key (key2) 0x7f9dc357adc0 with value (value2) 0x7f9dc357de20
{
"(key2)" = (null);
"(key1)" = "(value1)";
}
Adding the key (key3) 0x7fa4d2cbdbd0 with value (value3) 0x7fa4d2d53cf0
{
"(key3)" = "(value3)";
"(key2)" = "(value2)";
"(key1)" = "(value1)";
}
现在,如果我使用 XCode 的调试器查看字典的实际内容,我发现所有键/值对都按其应有的方式存在。所以看来dict的描述方法未能正确打印某些键的值。不使用 NSLog 但在 UITable 中显示字典的内容也会发生同样的情况。另请注意,如果我尝试记录这些特定键的值的地址,它也会给我 0x0(因此我的描述函数没有错误)。
请注意,行为相当困惑,有时多个值被设置为 nil,然后在我添加了几对键/值后它们会正确显示。我真的无法解决这个问题,任何帮助将不胜感激。
编辑 1
我的 key 的界面
@interface myKey : NSObject <NSCopying>
@property(nonatomic, copy) NSString *myKeyName;
@property(nonatomic) float myKeyFloat;
@property(nonatomic, readonly, strong) NSDate *dateCreated;
我的值(value)观的界面:
typedef NS_ENUM(NSInteger, Unities) { g, kg, };
@interface myValue : NSObject
@property(nonatomic) float myValueFloat;
@property(nonatomic) Unities myValueUnit;
调用代码
- (IBAction)addKeyValue:(id)sender {
myValue *value = [myValue randomValue];
myKey *key =[[CatalogKeys sharedCatalogKeys]
getRandomKeyFromStore]; [self.dict addOrModify:key withValue: value];
}
其中 randomValue 只是将 myValueUnit 设置为“g”并将随机浮点放入 myValueFloat
最佳答案
这是一个猜测:
提供的信息并未显示您的类型 myKey
实现了 isEqual:
和 hash
。键必须实现这些方法才能在 NSDictionary 中正常工作;如果未实现,则将使用默认的 NSObject
实现,并且它们可能不会为 myKey
实例生成正确的结果。
您还指出使用 myKey
实例的 description
确实有效,这是有道理的,因为 description
返回一个 NSString
并且该类型实现了 isEqual:
和 hash
。
HTH
关于cocoa - NSMutableDictionnary 的内容不规则地返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29021320/
negExpression : (NOT^)* primitiveElement ; 是我的规矩。我现在有这个代码: !!(1==1) 我希望我最终会得到这棵树: NOT | NOT
我遇到以下问题,我正在创建一个作为预算副本的表单,但这种类型的预算不包含增值税%,并且商品不会通过会计。 问题如下我创建了一个名为budget.table的模型如下: class TableEleme
我对 Java 相当陌生,但对一般编程不太熟悉。我在 Windows Vista 上使用 Java 1.7.0_07。我正在尝试弄清楚如何使 Swing Timer 定期计时。 我注意到,即使我设置了
我有一个静态站点,它突然显示不规则的标题。这是一个包含大量 JavaScript 的单一页面,包括页面顶部的表格选择。该网站六个月前运行良好。现在,我在 12 个不同的导航选项卡中的一半上看到无法解释
在我参加的 CS 类(class)中,有一个不规则语言的例子: {a^nb^n | n >= 0} 我可以理解它是不规则的,因为没有有限状态自动机/机器可以编写来验证和接受此输入,因为它缺少内存组件。
给定以下高频但稀疏的时间序列: #Sparse Timeseries dti1 = pd.date_range(start=datetime(2015,8,1,9,0,0),periods=10,fr
我有 X、Y、Z 格式的数据,其中所有数据都是一维数组,Z 是坐标 (X,Y) 处的测量幅度。我想将此数据显示为等高线或“imshow”图,其中等高线/颜色代表 Z 值(幅度)。 用于测量和 X 和
这是 Stackoverflow 上的一个递归问题,但给出的解决方案 here仍然不完美。对我来说,屈服仍然是 python 中最复杂的东西之一,所以我不知道如何自己修复它。 当给定函数的任何列表中的
我使用 PHP 5.3.3 在 RHEL 6 服务器上部署了一个 symfony 1.4 项目。我不定期地在 php 错误日志中收到条目,提示找不到 sfProjectConfiguration 并且
我是一名优秀的程序员,十分优秀!