ios - 比较 Objective-C 中的 2 个对象

标签 ios objective-c cocoa-touch cocoa core-data

在我的应用程序中,我想比较实体“锻炼”的 2 个核心数据实例。我想检查这 2 个对象的所有属性是否具有相同的属性值。本质上,如果两个对象相同减去关系,whosWorkout。有没有办法在不手动检查每个属性的情况下做到这一点?我知道我可以:

if(object1.intAttr == object2.intAttr){
    NSLog(@"This attribute is the same");
}
else{
    return;
}

repeat with different attributes...

是否有任何核心数据方法可以让这变得不那么乏味?

最佳答案

首先,我会在 Workout 子类中创建一个 isEqual 方法,如下所示...

-(BOOL)isEqualToWorkout:(Workout*)otherWorkout
{
    return [self.attribute1 isEqual:otherWorkout.attribute1]
        && [self.attribute2 isEqual:otherWorkout.attribute2]
        && [self.attribute3 isEqual:otherWorkout.attribute3]
        && [self.attribute4 isEqual:otherWorkout.attribute4]
        ...;
}

然后每当你想与 Workout 对象进行比较时,只需使用...

BOOL equal = [workout1 isEqualToWorkout:workout2];

关于ios - 比较 Objective-C 中的 2 个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20413892/

相关文章:

iOS 11 : Pop view controller with scrollView inside navigation controller with opaque navbar result in weird content animation during transition

objective-c - 使用 stringWithContentsOfFile : 读取文件时出现问题

iphone - 在 iOS8 中使用 UISearchBar 启用取消按钮

ios - 如何在没有 "MFMessageComposeViewController "的情况下以编程方式在 iPhone 上发送短信?

ios - Branch.io - 链接打开应用程序但未获取其中的数据

objective-c - 是否可以使我的 View 中心等于 (0,0)?

objective-c - 如何在输入 View 移动时使 VoiceOver 工作

iphone - 应用更新后处理丢失的 NSUserDefault 键

android - 在移动设备上使用 Adob​​e Air 消除回声

objective-c - 桌面上的 AVAudioSession?