浏览模式: 标准 | 列表

 Hprose 从 1.1 开始就增加了对 Objective-C 的支持,在 1.2 中又增加了对 Objective-C 中 Block 回调的支持,不过有一点遗憾的是,1.2 中使用 Block 回调时,需要手动将 Block 从栈上复制到堆上,并且要调用 autorelease 来释放它。autorelease 的问题是不能按时释放,释放的晚了浪费内存,提前释放程序可能就崩了。而且代码写起来也不够雅致,下面是在 Hprose 1.2 异步调用中使用 Block 回调的写法:

Objective-C代码
 
  1. -(IBAction) buttonClick:(id)sender {  
  2.     [ro hello:[text stringValue] block:[[^(id result, NSArray *args) {  
  3.         [label setStringValue: result];  
  4.     } copy] autorelease]];  
  5. }  
而 Hprose 1.3 彻底解决了这个问题,让 Block 调用在 Hprose 中不在是鸡肋,下面是 Hprose 1.3 异步调用中使用 Block 回调的写法:

Objective-C代码
 
  1. -(IBAction) buttonClick:(id)sender {  
  2.     [ro hello:[text stringValue] block:^(id result, NSArray *args) {  
  3.         [label setStringValue: result];  
  4.     }];  
  5. }  
现在的写法清新雅致多了吧,而且也没有内存释放的问题了。

好了,有了 Hprose 1.3,终于可以轻轻松松的开发 iOS/Mac OS X 的网络应用了!

最后再爆个料,Hprose 1.3 for Objective-C 的客户端在发布时,可是免费的哦!你再也不用为谈钱伤感情的问题纠结了,哈哈~~