2012-01-23 65 views
1

我想重写此方法来比较两个对象。覆盖 - (BOOL)isEqual:(id)对象

-(BOOL)isEqual:(id)object 

调用函数

-(void)overridemethod(

custom class object1 isEqual: custom class object2 

)的功能

定义

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

在此先感谢

+0

你的问题不是很清楚,请你解释一下你试图实现的目标吗?你只是想为该方法指定一个不同的名称(然后创建一个NSObject类别),还是要更改该语言的格式(然后生成#define宏)或其他内容? – ikuramedia

+0

解释more ..你想覆盖的函数..只是检查两个对象是否相等,并返回一个BOOL,表示是等于或是否等于。你想要改变哪些功能? – Shubhank

+0

不清楚?你想重写所有对象?或为一个自定义类? –

回答

9

的实现往往会采取这种形式:

@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