0

我的服务

@protocol Service <NSObject>
-(int)getPersonCount;
-(id<Person>)getPerson:(int)index;
@end

我的协议

@protocol Person
@property(assign, nonatomic) int age;
@property(retain, nonatomic) NSString* name;
@end

代理是这样制作的

id<Service> proxy = [CWHessianConnection proxyWithURL:url protocol:@protocol(Service)];
    int count = [proxy getPersonCount];
    for (int index = 0; index < count; index++) {
        id<Person> person = [proxy getPerson:index];
        NSLog(@"age: %d name: %@", person.age, person.name);
    }

结果[__NSCFData getBytes:range:]: range {3, 1}超过数据长度 3

这是 HessianKit doc 中的示例代码,我不知道它有什么问题。

4

1 回答 1

0

您只是在访问范围之外的数据。最大范围应该是 {2, 1} 并且您正试图达到 3。

于 2013-10-09T15:15:37.467 回答