我有自定义类。我想添加类型为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
答案 0 :(得分:3)
您收到此错误是因为您试图将nil
(可能是未初始化/未分配的对象)插入到无法完成的Objective-C集合中。如果您需要在Objective-C集合中表示nil
,则需要使用[NSNull null]
。
根据您添加的代码,问题是您尚未初始化变量。
其他地方有问题,你需要在某些时候将这些问题初始化(可能在init
?),但为了确保错误再也不会发生,你可以这样做:
- (NSDictionary *)variables {
return @{
@"781" : _topic ?: [NSNull null],
@"782" : _car ?: [NSNull null],
}
};