【问题标题】:perform class method on class parameter对类参数执行类方法
【发布时间】:2013-09-19 15:10:20
【问题描述】:

如何对传递给方法的类执行类方法?

假设我有一堂课:

@interface MyClass:NSOBject
+ (NSArray *) array;
@end

当我实例化类时

MyClass test = [[MyClass alloc] init;

我可以通过

访问数组
[[test class] array];

但是如果我将这个类传递给一个方法

[doStuffWithMyClass: (Class) aClass];

如何访问方法中的数组?我可以将课程“投射”到某个课程吗?

- (NSInteger) doStuffWithMyClass: (Class) aClass {
   return [aClass array].count;
}

【问题讨论】:

标签: objective-c class methods


【解决方案1】:

Classes 是对象,所以是的,你可以转换它们。

否则你可以这样做

[aClass performSelector:@selector(array)];

【讨论】:

  • 您是否尝试过仅调用该方法?您是否收到编译器警告/错误?有用吗?
  • 这怎么比[aClass array]好?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-13
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 2018-04-10
相关资源
最近更新 更多