在Cocoa / Objective-C中获取方法签名的类型编码?

前端之家收集整理的这篇文章主要介绍了在Cocoa / Objective-C中获取方法签名的类型编码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在 Cocoa中使用“signatureWithObjCTypes:”构造一个任意的NSMethodSignature,而没有一个我可以通过“methodSignatureForSelector:”请求签名的对象.

为此,我需要方法编码,例如,是

c12@0:4@8

对于

(BOOL) isEqual: (id) object

我尝试使用@encode(…)来获取类型编码,但这似乎不适用于函数(它导致未知类型’?’).我不想手动编码函数类型,因为它不能在不同的运行时间移植.

还没有声明的方法获取编码.

还有另一种获取编码的方法吗?

问候,

约亨

解决方法

怎么样的:
#import <objc/runtime.h>
//inside the method implementation:
Method thisMethod = class_getClassMethod([self class],_cmd);
const char * encoding = method_getTypeEncoding(thisMethod);

或者对于任意方法

#import <objc/runtime.h>
//inside the method implementation:
Method thisMethod = class_getClassMethod([self class],@selector(isEqual:));
const char * encoding = method_getTypeEncoding(thisMethod);
原文链接:https://www.f2er.com/c/110798.html

猜你在找的C&C++相关文章