清除数据库后,iOS CoreData实体返回为Null
当用户注销应用程序时,我需要从核心数据中删除实体,它返回“null”实体 因此,我在注销应用程序时遇到崩溃,是否有任何关于处理实体上的空值的猜测 因为我使用了下面的案例,但它不起作用清除数据库后,iOS CoreData实体返回为Null,ios,iphone,database,core-data,applet,Ios,Iphone,Database,Core Data,Applet,当用户注销应用程序时,我需要从核心数据中删除实体,它返回“null”实体 因此,我在注销应用程序时遇到崩溃,是否有任何关于处理实体上的空值的猜测 因为我使用了下面的案例,但它不起作用 if(![user isKindOfClass: [NSNull class]]) { } 删除实体后,返回为 <user: 0x1c4293ce0> (entity: <null>; id: 0xd000000000040004 <x-coredata://9E21A585-096
if(![user isKindOfClass: [NSNull class]]) {
}
删除实体后,返回为
<user: 0x1c4293ce0> (entity: <null>; id: 0xd000000000040004 <x-coredata://9E21A585-096A-408F-AF0F-CB027A3E48F0/user/p1> ; data: <fault>)
(实体:;id:0xd000000000040004;数据:)
任何人都可以澄清为什么会发生这种情况您的
用户
变量仍然包含对(已删除的)NSManagedObject
子类实例的引用
由于对象已被删除,其实体
显示为“null”,但用户
没有对NSNull
单例的引用
NSNull是一个单例对象,可用于将“null”值放入无法保存nil引用的对象(例如NSArray)
删除对象后,应明确设置user=nil
,然后在if
中检查nil
if (user != nil) {
[userComtext performBlock: ^{
user.latitude = latitude
user.longitude = longitude
}];
}
您的
user
变量仍然保存对(已删除的)NSManagedObject
子类实例的引用
由于对象已被删除,其实体
显示为“null”,但用户
没有对NSNull
单例的引用
NSNull是一个单例对象,可用于将“null”值放入无法保存nil引用的对象(例如NSArray)
删除对象后,应明确设置user=nil
,然后在if
中检查nil
if (user != nil) {
[userComtext performBlock: ^{
user.latitude = latitude
user.longitude = longitude
}];
}
将代码张贴到获取崩溃的位置以及与之相关的错误消息。我已更新了确切的崩溃,请检查它删除对象后,您应通过将
nil
分配给user
明确放弃对该对象的引用,并在if
中检查nil
NSNull
是一个单例对象,可用于将“null”值放入无法保存nil
引用的对象(例如NSArray
)中,将获取崩溃的代码和相关错误消息发布到其中。我已更新了确切的崩溃,选中它删除对象后,应通过将nil
分配给user
明确放弃对该对象的引用,并在if
中选中nil
NSNull
是一个单例对象,可用于将“null”值放入无法保存nil
引用的对象(例如NSArray
)中,如果(user!=nil){[userContext performBlock:^{user.latitude=纬度;user.longitude=经度;删除对象时是否确实设置了user=nil
在您的问题中?如果(user!=nil){[userContext performBlock:^{user.latitude=纬度;user.longitude=经度;删除对象时是否确实设置了user=nil
你的问题是什么?