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

Xcode 6 build failed,HproseClient.m have 20 errors #2

Closed aijun198600 closed 10 years ago

aijun198600 commented 10 years ago

code:

import <Foundation/Foundation.h>

import "Hprose.h"

@protocol Hello

int main(int argc, const char * argv[]) { @autoreleasepool { id client = [HproseHttpClient client:@"http://www.hprose.com/example/"]; id helloClient = [client useService:@protocol(Hello)]; NSLog(@"%@", [helloClient hello:@"World"]); } return 0; }

error(HproseClient.m):objc_msgSend(delegate, onError, _name, e); Semantic Issue:Too many arguments to function call,expected 0,hava 4

aijun198600 commented 10 years ago

如果可以的话,能出一个Xcode 6的文档,如果能使用StoryBoard作为界面,那更好了,感激不尽!

andot commented 10 years ago

我在XCode 6上刚刚测试了,但是没有遇到你说的问题(hprose的hprose-objc里面有个例子,直接运行那个不会出错)。objc_msgSend的定义是:

 id objc_msgSend(id self, SEL op, ...)

我看Apple Developer的文档没有特别针对XCode 6的版本有什么改动,所以我觉得这地方应该不需要特别的强制类型转换吧。

andot commented 10 years ago

哦,我发现问题了,原来在 LLVM 6.0 中增加了一个 OBJC_OLD_DISPATCH_PROTOTYPES,默认配置在 Apple LLVM 6.0 - Preprocessing 中的 Enable Strict Checking of objc_msgSend Calls 中为Yes,所以就会出这个错误了。所以你的修改是对的。