美文网首页
是NSArray中的对象统一调用某一方法

是NSArray中的对象统一调用某一方法

作者: 爱吃萝卜的小蘑菇 | 来源:发表于2017-08-16 20:29 被阅读2次
    Person *p1 = [Person new];
    Person *p2 = [Person new];
    Person *p3 = [Person new];
    Person *p4 = [Person new];
    
    NSArray *arr = @[p1, p2, p3, p4];
    /*
    [arr enumerateObjectsUsingBlock:^(Person *obj, NSUInteger idx, BOOL *stop) {
        [obj say];
    }];
    */
    
    // 如果使用OC数组存储对象, 可以调用OC数组的方法让数组中所有的元素都执行指定的方法
    // 注意点: 如果数组中保存的不是相同类型的数据, 并且没有相同的方法, 那么会报错
    

    // [arr makeObjectsPerformSelector:@selector(say)];

    // withObject: 需要传递给调用方法的参数
    [arr makeObjectsPerformSelector:@selector(sayWithName:) withObject:@"lnj"];

    相关文章

      网友评论

          本文标题:是NSArray中的对象统一调用某一方法

          本文链接:https://www.haomeiwen.com/subject/ifdwrxtx.html