hprose / hprose-objc

Hprose is a cross-language RPC. This project is Hprose 2.0 Client for Objective-C
MIT License
130 stars 19 forks source link

(protocol's function name contains '_',it will lead to crash)接口方法名中含有'_'字符会导致崩溃 #4

Closed aijun198600 closed 9 years ago

aijun198600 commented 9 years ago

服务器端定义方法名中包含"_"下划线,比如friends_notice,但是Hprose客户端中,object-c中是解析为名称空间,然后导致程序崩溃错误。 错误信息(error information):Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSMethodSignature signatureWithObjCTypes:]: type signature is NULL.' 错误处为:HproseClientProxy.m 有什么方法可以使用带有下划线的方法名呢?

andot commented 9 years ago

有三种方法可以避免崩溃: 1、使用 invoke 方法直接调用。 2、在 Protocol 定义中把 notice 定义成方法名,使用 useService 时,把 @"friends" 作为第二个参数代入,调用时直接使用 notice 就可以调用服务器端的 friends_notice 方法了。 3、直接在 Protocol 定义中把 friends_notice 定义成方法名,使用 useService 方法时,不要带第二个参数,就可以直接使用 friends_notice 来调用服务器端的 friends_notice 方法了。

aijun198600 commented 9 years ago

谢谢,学习了