首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在iPhone应用程序中使用RestKit的最佳方式

在iPhone应用程序中使用RestKit的最佳方式
EN

Stack Overflow用户
提问于 2011-04-14 18:26:35
回答 1查看 8.5K关注 0票数 49

我正在编写一个iPhone应用程序,我最终使用decided来使用RestKit作为连接REST服务的框架。

我考虑构建的方法是让我的应用程序中的控制器对RestKit完全不可知。例如。如果我有一个登录屏幕,在通常的RestKit场景中(基于示例程序以及RestKit开发人员创建的少量博客条目),您将让控制器实现RKRequestDelegate协议,并使用RKClient调用控制器中传递self (控制器)作为委托的服务。我想对开发控制器和视图的用户隐藏这一点。

我想的是以下几点。我会有一个LoginService,这将登录用户。将会有协议LoginServiceDelegate,它有两个成功和失败的方法。控制器可以实现登录并调用LoginService中的LoginServiceDelegate方法,并获得成功或失败的回调。然而,要做到这一点,我需要一些方法让我的LoginService将调用委托回控制器。RestKit不允许我这样做,我唯一能做到这一点的方法是:用LoginServiceDelegate初始化LoginService,将该委托存储为属性,并在登录成功或失败时调用委托中的适当方法。

这使我的控制器代码库保持在最低限度,并完全隐藏了LoginService的工作方式以及它内部使用的框架。委托的使用也将控制器从模型中分离出来,所以我们有了一个很好的MVC。然而,我关心的是Model类保留Controller对象的含义,因为它持有委托。

您将如何使用RestKit?如果你认为我的方法很好,你会做些什么来让它变得更好?如果你不喜欢我的方法,我想要你的反馈,为什么你认为这不是一个好的做法。

下面的代码片段应该会让你有更好的想法

代码语言:javascript
运行
复制
@protocol LoginServiceDelegate;

@interface LoginService : NSObject <RKRequestDelegate>{
    NSObject<LoginServiceDelegate> *_loginServiceDelegate;

}

@property (retain, nonatomic) NSObject <LoginServiceDelegate> *loginServiceDelegate;

- (id) initWithDelegate:(NSObject<LoginServiceDelegate>*) loginServiceDelegate;

- (void) login:(NSString *)username withPassword:(NSString *)password;

@end

@protocol LoginServiceDelegate
@optional

- (void) loginSuccess:(LoginInfo *) loginInfo;

- (void) loginFailure:(NSString *) message;

@end

干杯!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5661842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档