Junior — Middle
Ի՞նչ են հիմնական չափանիշները, որոնց պետք է համապատասխանի օբյեկտը, որպեսզի ճիշտ ավելացվի Set հավաքածուին։
sobes.tech AI
Պատասխան AI-ից
Կարող եք ճիշտ կերպով ավելացնել օբյեկտը Set հավաքածուին (օրինակ, NSSet iOS-ում), եթե օբյեկտը պետք է.
-
Ճիշտ և համահունչ իրականացնել
-hashև-isEqual:մեթոդները:-hashպետք է վերադարձնի նույն արժեքը այն օբյեկտների համար, որոնք համարվում են հավասար:-isEqual:պետք է ճշգրիտ որոշի օբյեկտների հավասարությունը:
-
Թող օբյեկտը լինի անփոփոխ այն դաշտերում, որոնք մասնակցում են հեշի հաշվարկին և համեմատությանը, մինչ օբյեկտը գտնվում է Set-ում: Այլապես, հավաքածուի ամբողջականությունը կխախտվի:
Օրինակ, եթե ստեղծում եք ձեր դասը NSSet-ում պահելու համար, վերագրեք այս մեթոդները.
- (NSUInteger)hash {
return self.identifier.hash;
}
- (BOOL)isEqual:(id)object {
if (self == object) return YES;
if (![object isKindOfClass:[MyClass class]]) return NO;
return [self.identifier isEqual:((MyClass *)object).identifier];
}
Այսպիսով, Set-ը ճիշտ կհայտարարի օբյեկտների եզակիությունը։