public long methodSignatureForSelector(long lselector) {
Pointer selector = new Pointer(lselector);
Method method = methodForSelector(selName(selector));
if ( method != null){
Msg message = (Msg)method.getAnnotation(Msg.class);
if ( !"".equals(message.signature()) ){
long res = PointerTool.getPeer(
msgPointer(cls("NSMethodSignature"), "signatureWithObjCTypes:", message.signature())
);
return res;
} else if ( !"".equals(message.like())){
String[] parts = message.like().split("\\.");
Proxy instance = client.chain(parts[0], "alloc").chain("init");
Pointer out = msgPointer(instance.getPeer(), "methodSignatureForSelector:", sel(parts[1]));
return PointerTool.getPeer(out);
}