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

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中的对象统一调用某一方法)