037.isEqual 合理的重写

---------------  main.m  ---------------
#import <Foundation/Foundation.h>

@interface FKUser : NSObject
@property ( nonatomic , copy ) NSString* name;
@property ( nonatomic , copy ) NSString* idStr;
- (
id ) initWithName: (NSString*) name idStr: (NSString*) idStr;
@end

@implementation FKUser
- (
id ) initWithName: (NSString*) name idStr: (NSString*) idStr
{
   
if ( self = [ super init])
    {
       
self .name = name;
       
self .idStr = idStr;
    }
   
return self ;
}
- ( BOOL ) isEqual: ( id ) other
{
    if ( self == other)
        return YES;
    if (other != nil && [other isMemberOfClass:FKUser.class])
    {
        FKUser* target = (FKUser*)other;
        return [ self .idStr isEqual: target.idStr];
    }
   
return NO ;
}
@end

int main()
{
    FKUser* p1 = [[FKUser alloc] initWithName:@ 孙悟空 "  idStr: @"12343433433"];
    FKUser* p2 = [[FKUser alloc] initWithName: @" 孙行者 "  idStr: @"12343433433"];
    FKUser* p3 = [[FKUser alloc] initWithName: @" 孙悟饭 "  idStr: @"99933433"];
    NSLog(@"p1p2是否相等?%d" , [p1 isEqual: p2]);
    NSLog( @"p2 p3 是否相等? %d" , [p2 isEqual: p3]);
}

一、编写本节代码的具体步骤:
1.可仿照第二章001节的代码编写步骤,可以把类的接口文件,类的实现文件写在main.m文件中。

二、本节代码涉及到的知识点:
1. 本节代码重写了 isEqual方法,指定了FKUser对象和其他对象相等的标准:
  即:另一个对象必须是FKUser类的实例,且两个实例的idStr必须相等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值