将对象 NSMutableArray 添加到 NSDictionary

Posted

技术标签:

【中文标题】将对象 NSMutableArray 添加到 NSDictionary【英文标题】:Addobject NSMutableArray to a NSDictionary 【发布时间】:2011-10-11 08:42:37 【问题描述】:

我正在尝试将NSMutableArray 添加到NSDictionary 但在日志中显示NSDictionary 时出现此问题:

)' of class '__NSCFArray'.  Note that dictionaries and arrays in
property lists must also contain only property valúes.

这是我用来创建NSMutableDictionary的代码

NSMutableDictionary *training = [[NSMutableDictionary alloc] init];
[training setObject:[NSNumber numberWithInt:eltiempo] forKey:@"tiempototal"];
[training setObject:[NSNumber numberWithFloat:totalkm] forKey:@"distanciatotal"];
[training setObject:[NSNumber numberWithInt:(int)(velocidadmedia/60)] forKey:@"velocidadmedia"];
[training setObject:[NSString stringWithFormat:@"%2d:%02d min/km"] forKey:@"fecha"];
[training setObject:posiciones forKey:@"posiciones"];

其中 posiciones 是我要添加的数组。我将此字典保存在一个数组中,以便将其保存在用户默认值中。但由于我有这个问题,NSDictionary 没有被创建。

感谢您的帮助。

佩德罗

【问题讨论】:

也许这不是问题,但我看到键“fecha”的字符串格式无效。 您没有粘贴整个日志消息。问题似乎是数组或字典包含不属于祝福属性列表类型组(NSString、NSArray、NSDictionary、NSDate、NSData、NSNumber)的对象。 【参考方案1】:

你将它添加到数组中就好了^^你想写入一个plist(根据错误)并且posiciones包含不能在plist中使用的非plist类型

【讨论】:

【参考方案2】:

佩德罗·皮涅拉·布恩迪亚,

试试这个代码,

NSMutableDictionary *woRows = [[NSMutableDictionary alloc] init];
NSMutableArray *workOrders = [[NSMutableArray alloc] init];

[woRows  setValue:[workOrders objectAtIndex:0] forKey:@"somekey"];
[woRows setValue:[workOrders objectAtIndex:1] forKey:@"somekey"];
[woRows setValue:[workOrders objectAtIndex:2] forKey:@"somekey"];

【讨论】:

-1:没有关于与海报已经在做什么不同的消息。我看不到任何东西(除了你的代码覆盖同一个键三次并且会崩溃,但它是示例代码)。

以上是关于将对象 NSMutableArray 添加到 NSDictionary的主要内容,如果未能解决你的问题,请参考以下文章

将对象 NSMutableArray 添加到 NSDictionary

将自动释放的对象添加到 NSMutableArray

iOS/Objective-C:将 NSString 对象添加到 NSMutableArray,NSMutableArray 为 (null)

核心数据触发错误将对象添加到 NSMutableArray?

如何将 NSArray 中的对象添加到 NSMutableArray 的末尾?

iPhone Core Data 对象添加到 NSMutableArray