使用自定义类对象创建字典

时间:2014-08-30 21:12:24

标签: ios objective-c nsdictionary nsobject

我有自定义类。我想添加类型为NSDictionary的类属性,它将返回给定标记的此类的属性。但我不能这样做。有可能吗?我有错误:

  [__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]'

CODE:

@interface Car : NSObject
@property (nonatomic, strong) NSNumber *topic;  
@property (nonatomic, strong) NSNumber *car;  
@property (nonatomic, strong) NSDictionary *variables;
@end

@implementation Car
- (NSDictionary *)variables
{
return @{
         @"781" : _topic, 
         @"782" : _car,  
}};
@end

1 个答案:

答案 0 :(得分:3)

您收到此错误是因为您试图将nil(可能是未初始化/未分配的对象)插入到无法完成的Objective-C集合中。如果您需要在Objective-C集合中表示nil,则需要使用[NSNull null]


根据您添加的代码,问题是您尚未初始化变量。

其他地方有问题,你需要在某些时候将这些问题初始化(可能在init?),但为了确保错误再也不会发生,你可以这样做:

- (NSDictionary *)variables {
    return @{
        @"781" : _topic ?: [NSNull null], 
        @"782" : _car ?: [NSNull null],  
    }
};