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