Eci*_*ana 5 runtime objective-c variadic-functions objective-c-runtime method-signature
有没有办法找出 - 在运行时 - 给定的方法是否是可变类型?喜欢的东西method_getTypeEncoding(); 这不会告诉我方法是否接受可变数量的参数.或者是否有一个技巧可以这么说?
罗伯特的评论是正确的.考虑:
@interface Boogity
@end
@implementation Boogity
- (void)methodWithOneIntArg:(int)a {;}
- (void)variadicMethodWithIDSentinel:(id)a, ... {;}
@end
strings在生成的二进制文件上运行生成(还有库存main()):
strings asdfasdfasdf 
Boogity
methodWithOneIntArg:
variadicMethodWithIDSentinel:
v20@0:8i16
v24@0:8@16
Hello, World!
如果我将variadic方法更改为声明为- (void)variadicMethodWithIDSentinel:(int)a, ...,则strings输出变为:
Boogity
methodWithOneIntArg:
variadicMethodWithIDSentinel:
v20@0:8i16
Hello, World!
所以,不,没办法说出来.
| 归档时间: | 
 | 
| 查看次数: | 280 次 | 
| 最近记录: |