码迷,mamicode.com
首页 > 其他好文 > 详细

OC 重写description,isEqual方法

时间:2015-12-20 19:27:14      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:

// 为了能用%@打印出对象的有效信息,需要重写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;
}

 

  

 

OC 重写description,isEqual方法

标签:

原文地址:http://www.cnblogs.com/tang910103/p/5061445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!