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
Run Code Online (Sandbox Code Playgroud)
strings
在生成的二进制文件上运行生成(还有库存main()
):
strings asdfasdfasdf
Boogity
methodWithOneIntArg:
variadicMethodWithIDSentinel:
v20@0:8i16
v24@0:8@16
Hello, World!
Run Code Online (Sandbox Code Playgroud)
如果我将variadic方法更改为声明为- (void)variadicMethodWithIDSentinel:(int)a, ...
,则strings
输出变为:
Boogity
methodWithOneIntArg:
variadicMethodWithIDSentinel:
v20@0:8i16
Hello, World!
Run Code Online (Sandbox Code Playgroud)
所以,不,没办法说出来.
归档时间: |
|
查看次数: |
280 次 |
最近记录: |