首页 > 其他 > 详细

NSArray的containsObject漏洞

时间:2015-11-18 08:08:15      阅读:431      评论:0      收藏:0      [点我收藏+]

1.NSArray中的containsObject的用法

 NSMutableArray *array=[NSMutableArray array];

    if(![array containsObject:[NSNumber numberWithInt:3]]){//判断数组中是否有3这个元素

        [array addObject:[NSNumber numberWithInt:3]];//没有元素的话添加

    }

    if(![array containsObject:[NSNumber numberWithInt:4]]){//判断数组中是否有4这个元素

        [array addObject:[NSNumber numberWithInt:4]];

    }

    if(![array containsObject:[NSNumber numberWithInt:3]]){

        [array addObject:[NSNumber numberWithInt:3]];

    }

    NSLog(@"%@",array);//3,4

最后一个3没有加进去,containsOjbect是不是挺神奇的,

2.可是我们要用自定义的类呢,你就会发现containsObject不顶用了,这个时候我们必须重写父类的方法

-(BOOL)isEqual:(id)object

为什么呢,因为containsOjbect是按地址进行判断的,比如我们建一个Person类,添加一个name属性

 

-(BOOL)isEqual:(id)object{

    if(self==object){

        return YES;

    }

    Person *p=(Person *)object;

    if([self.name isEqualToString:p.name]){

        return YES;

    }

    return NO;

}

 这样数组里有的话就不会被重复添加了

NSArray的containsObject漏洞

原文:http://www.cnblogs.com/hualuoshuijia/p/4973402.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!