2012-01-23 4 views
1

2つのオブジェクトを比較するためにこのメソッドをオーバーライドする必要があります。事前オーバーライド - (BOOL)isEqual:(id)オブジェクト

+0

あなたの質問は明確ではありません。達成しようとしていることを説明してください。メソッドの名前を変えたいのですか(あるいはNSObjectカテゴリを作成するか)、あるいは言語のフォーマットを変更したいのですか(#defineマクロを作るかなど)? – ikuramedia

+0

もっと説明する..オーバーライドする関数.. 2つのオブジェクトが等しいかどうかをチェックして、等しいかどうかを示すBOOLを返すか、同等の場合はNOを返します。変更したい機能は何ですか? – Shubhank

+0

はクリアされていませんか?すべてのオブジェクトをオーバーライドしたいですか?またはカスタムクラスのために? –

答えて

9

let suppose comparing the date parameter of two objects. Then how can i do that. 

おかげ実装は、多くの場合、この形態をとる機能の

-(BOOL)isEqual:(id)object 

関数を呼び出す

-(void)overridemethod(

custom class object1 isEqual: custom class object2 

定義:

@interface MONInteger : NSObject 
{ 
@private 
    int value; 
} 

@property (nonatomic, assign, readonly) int value; 

@end 

@implementation MONInteger 
... 
- (BOOL)isEqual:(id)object 
{ 
    // MONInteger allows a comparison to NSNumber 
    if ([object isKindOfClass:[NSNumber class]]) { 
     NSNumber * other = object; 
     return self.value == other.intValue; 
    } 
    else if (![object isKindOfClass:self.class]) { 
     return NO; 
    } 
    MONInteger * other = object; 
    return self.value == other.value; 
} 

@end 
+0

NSNumberの代わりに、文字列を比較するにはどうすればいいですか? – Murtz

+1

文字列を比較するには、 ' - [NSString isEqualToString:]' 。 – justin

+0

私は自分の質問を編集しました。あなたは今何を求めているのか理解してくれるでしょうか? – Murtz

関連する問題