2

我的任务是将我们在 iOS 中的 web 服务层(完全用块编写)转换为与 Android 类似的东西。由于 Java 还没有闭包,那么合理的方法是什么?

示例 api 调用:

if (![data.locationsAPI cityNamesForCity:self.searchBox.text
                              onSuccess:^(JSONRef * ref)
     {
         locations = [[ref valueForKey:@"cities"]arrayCopy];
         [self.searchTable reloadData];
         [self.hotelTable reloadData];

     } onFailure:^(IOError * error)
     {
         locations = nil;
         [self.searchTable reloadData];
     }])
{
    [self notReachableAlert];
}

成功/失败块在主线程上调用,而内部的 api 调用在后台线程中。

我可以对匿名类做类似的事情,该类将传递原始类,然后可以分派给某个方法来处理结果。有没有更好的办法?

4

1 回答 1

0

您可以使用模式委托 http://en.wikipedia.org/wiki/Delegation_pattern。传递采用某些方法的委托对象。在得到一些结果后,用结果值调用这个方法。

于 2014-07-10T09:06:42.120 回答