Ios NSObject';的属性可以为null

Ios NSObject';的属性可以为null,ios,Ios,我有一个模范翻译。它读取AModel的属性,如果BModel具有相同的属性,则将该值复制到BModel的相同属性。现在我有一个崩溃报告显示属性为null。真奇怪。属性是从属性列表中获取的,它是null 信息如下: ***由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:此类不符合密钥的键值编码(null)。 +(instancetype)convertSourceObject:(id)sourceObject{

我有一个模范翻译。它读取
AModel
的属性,如果
BModel
具有相同的属性,则将该值复制到
BModel
的相同属性。现在我有一个崩溃报告显示属性为
null
。真奇怪。属性是从属性列表中获取的,它是
null

信息如下:

***由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:此类不符合密钥的键值编码(null)。

+(instancetype)convertSourceObject:(id)sourceObject{
如果(!sourceObject){
返回零;
}
id destination_object=[[self alloc]init];
uint目的地属性计数=0;
objc_property_t*destination_properties=class_copyPropertyList([self class],&destination_properties_count);
对于(int i=0;i

}

错误的意思是:您试图读取名称为“null”AModel属性的属性,但该属性在AModel中不存在

您应该在模型类中覆盖valueForUndefinedKey,调试UndefinedKey

检查你的密码,好像发生在

id source_value = [sourceObject valueForKey:property_name];

NSLog调试属性\u名称,查看您得到了什么。

您正在请求对象上属性的键路径值。用于访问该值的键为空。这不是有效的密钥,因此需要更改密钥逻辑。请出示一些代码。这是代码。属性来自属性列表,属性列表不应为空。我无法重新显示崩溃,它来自用户的崩溃报告日志。@sunny678哦,所以很难找到,除非您可以重复此错误。您应该覆盖valueForUndefinedKey方法。如果你有一个未定义的类,它不会崩溃。要找到这个undefinedKey,请在valueForUndefinedKey方法中执行一些操作。谢谢,我会尝试一下。
id source_value = [sourceObject valueForKey:property_name];