// 为了能用%@打印出对象的有效信息,需要重写description方法 - (NSString *)description { // 最简单的办法是将属性和值组合成键值对存放到字典中 // 这样只需要调用字典的description方法就能获取对应的描述字符串 NSDictionary *dictionary = @{@"name" : name_, @"address" : address_, @"friends" : friends_}; NSString *str = [[super description] stringByAppendingString:dictionary.description]; // 由于是Foundation自身的原因,描述字符串中的中文字符会显示为其编码 // 因此需要转换一下,这样才能正确的显示中文 const char *s = [str cStringUsingEncoding:NSUTF8StringEncoding]; NSString *ret = [NSString stringWithCString:s encoding:NSNonLossyASCIIStringEncoding]; return ret; }
- (BOOL)isEqual:(id)object { // 如果指向同一个对象或者均为nil则认为相等 if (self == object) return YES; // 当object不为nil,且是本类的实例时: if (object && [object isMemberOfClass:[self class]]) { TZObject *another = object; BOOL ret = YES; ret = ret && [self.name isEqualToString:another.name]; ret = ret && (self.age == another.age); return ret; } return NO; }
时间: 2024-10-22 10:48:11