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

Ios 使用自定义类对象创建字典,ios,objective-c,nsdictionary,nsobject,Ios,Objective C,Nsdictionary,Nsobject,我有定制课程。我想将NSDictionary类型添加到此类属性,该类型将通过给定标记返回此类的属性。但我做不到。有没有可能?我有一个错误: [__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[0]' 代码: 出现此错误是因为您试图将nil(可能是未初始化/未分配的对象)插入到Objective-C集合中,这是无法完成的。如果需要在Objec

我有定制课程。我想将NSDictionary类型添加到此类属性,该类型将通过给定标记返回此类的属性。但我做不到。有没有可能?我有一个错误:

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


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

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

其他地方有一个问题,您需要在某个时间点将其初始化为init?中的某个内容,但为了确保错误不再发生,您可以执行以下操作:

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

你可能想考虑让变量变成只读属性,或者更好的是,只是一个简单的老方法。“JLHR,虽然我同意,似乎暗示它可能不是。NHGRIF,谢谢,如何,我可以返回该类实例的变量_topic的值吗?这将返回变量_topic的值,其中包含一个表示为NSNull对象的潜在值nil。如果您要取回NSNull对象,那么您尚未初始化_主题,并且它没有任何值。。。
@implementation Car
- (NSDictionary *)variables
{
return @{
         @"781" : _topic, 
         @"782" : _car,  
}};
@end
- (NSDictionary *)variables {
    return @{
        @"781" : _topic ?: [NSNull null], 
        @"782" : _car ?: [NSNull null],  
    }
};