---------------
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;
@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;
- (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;
}
}
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(@"p1和p2是否相等?%d",
[p1 isEqual: p2]);
NSLog(@"p2和p3是否相等?%d",
[p2 isEqual: p3]);
}
一、编写本节代码的具体步骤:
1.可仿照第二章001节的代码编写步骤,可以把类的接口文件,类的实现文件写在main.m文件中。
二、本节代码涉及到的知识点:
1.本节代码重写了isEqual方法,指定了FKUser对象和其他对象相等的标准:
即:另一个对象必须是FKUser类的实例,且两个实例的idStr必须相等。