Core data 具有CoreData字符串属性的相等项不起作用

Core data 具有CoreData字符串属性的相等项不起作用,core-data,comparison,nsstring,equality,Core Data,Comparison,Nsstring,Equality,我不明白这为什么不起作用。我有两个实体,我们称之为员工和部门。而Departments有一个名为division的字符串属性。这非常有效: NSLog(@"Division: %@",employee.department.division); 比如说,控制台显示的是“全球海鲜”。但如果我尝试使用完全相同的字符串进行比较,则会失败: if(employee.department.division == @"Worldwide Seafood") NSLog(@"Works in seafood

我不明白这为什么不起作用。我有两个实体,我们称之为员工和部门。而Departments有一个名为division的字符串属性。这非常有效:

NSLog(@"Division: %@",employee.department.division);
比如说,控制台显示的是“全球海鲜”。但如果我尝试使用完全相同的字符串进行比较,则会失败:

if(employee.department.division == @"Worldwide Seafood") NSLog(@"Works in seafood!");
控制台中不显示任何内容,即比较没有正常工作


对任何人都有意义吗?谢谢。

如果([employee.department.division isEqualToString:@“Worldwide Seafood”])…使用
=
比较
NSObject
实例(在本例中为
NSString
实例)是指针比较,因为无法在堆栈上创建Objective-C实例,请尝试此操作。因此,您的代码询问
NSString
实例
employee.department.division
是否与静态字符串是相同的指针(相同的内存位置)。这几乎肯定不是事实

你应该使用

[employee.department.division isEqualToString:@"Worldwide Seafood"]
更一般地说,您应该使用
-[NSObject isEqual:
来比较对象实例