C.3 AddressCard实现文件


import“AddressCard.h”

@implementation AddressCard

@synthesize name, email;

-(void)setName:(NSString)theName andEmail:(NSString)theEmail

{

[self setName:theName];

[self setEmail:theEmail];

}

//Compare the two names from the specified address cards

-(NSComparisonResult)compareNames:(id)element

{

return[name compare:[element name]];

}

-(void)print

NSLog(@“===================================”);

NSLog(@);

NSLog(@“%-31s|”,[name UTF8String]);

NSLog(@“%-31s|”,[email UTF8String]);

NSLog(@);

NSLog(@);

NSLog(@);

NSLog(@“O O|”);

NSLog(@“===================================”);

}

-(AddressCard)copyWithZone:(NSZone)zone

{

AddressCard*newCard=[[AddressCard allocWithZone:zone]init];

[newCard retainName:name andEmail:email];

return newCard;

}

-(void)retainName:(NSString)theName andEmail:(NSString)theEmail

{

name=[theName retain];

email=[theEmail retain];

}

-(void)encodeWithCoder:(NSCoder*)encoder

{

[encoder encodeObject:name forKey:@“AddressCardName”];

[encoder encodeObject:email forKey:@“AddressCardEmail”];

}

-(id)initWithCoder:(NSCoder*)decoder

{

name=[[decoder decodeObjectForKey:@“AddressCardName”]retain];

email=[[decoder decodeObjectForKey:@“AddressCardEmail”]retain];

return self;

}

-(void)dealloc

{

[name release];

[email release];

[super dealloc];

}

@end