---------------
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必须相等。