zoukankan      html  css  js  c++  java
  • OC 重写description,isEqual方法

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

      

  • 相关阅读:
    B
    I
    C
    判断线段之间的关系(D
    C
    求矩形的周长(线段树+扫描线) Picture POJ
    面积并+扫描线 覆盖的面积 HDU
    线段树->面积并 Atlantis HDU
    E1. Array and Segments (Easy version)(暴力) && E2. Array and Segments (Hard version)(线段树维护)
    Python File writelines() 方法
  • 原文地址:https://www.cnblogs.com/tang910103/p/5061445.html
Copyright © 2011-2022 走看看