@compatibility_alias 可以调用实例方法吗?

@compatibility_alias can call instance methods?

我正在用@compatibility_alias 做一些测试,然后意识到:

With it we can change the name of our class, but compensating you can only access static methods (+).

我的疑惑是:@compatibility_alias可以访问实例方法(-)?还是仅限于静态方法 (+)?

您不使用 class 名称访问实例方法,而是使用实例。例如:

@compatibility_alias BaArray NSMutableArray

与通过 NSMutableArray 相比,无需通过 BaArray 访问 addObject:。以上可以作为:

BaArray *ba = [BaArray new];  // allocates an NSMutableArray
[ba addObject:@42];           // adds an object to the NSMutableArray

实例方法调用没有提到BaArrayNSMutableArray

注意:此功能并非针对 "change the name of our class" 设计,而是针对 class 名称已更改且希望使用包含旧名称的现有源的情况。

HTH