2 tane eşitliği kontrol etmek için hash ve isEqual
'u geçersiz kılabileceğimi biliyorum. TamamVarsayılan isEqual ve karma ile ilgili karışıklık
- (BOOL)isEqual:(id)other
{
if (other == self) {
return YES;
} else if (![super isEqual:other]) { //WHAT is this line mean ?
return NO;
} else {
return <#comparison expression#>;
}
}
- (NSUInteger)hash
{
return <#hash expression#>;
}
,
other == self
çek iki nesnelerin işaretçileri şöyle Xcode varsayılan pasajı ve doucument https://developer.apple.com/library/ios/documentation/General/Conceptual/DevPedia-CocoaCore/ObjectComparison.html sahiptir.![super isEqual:other]
ise, bu satırın anlamı nedir? Süper nesne diğerine eşit değilse, HAYIR? Daha sonra her zamanNO
dönecektir, 3. adım çalıştırılmayacaktır.
Yanlış mıyım?
Teşekkürler.
:
Aslında siz de fazladan bir adım gerekir. – Tim
if! [Super isEqual: other]: yöntemleri geçersiz kıldığınızda, temel sınıf yöntemini çağırır. –
Süper sınıf, NSObject ise, bu durumda iki örnek 'işaretçisi denetler; Daha sonra 3. adım uygulanmayacak mı? sağ ? –