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

问题描述

| 我正在编写一个iPhone应用程序,我最终决定使用RestKit作为连接到REST服务的框架。 我正在考虑的构建方式是让应用程序中的Controller与RestKit完全无关。例如。如果有登录屏幕,则在通常的RestKit场景中(基于示例程序以及RestKit开发人员创建的少量博客条目),您将让控制器实现RKRequestDelegate协议,并使用RKClient在Controller传递中调用服务自我(控制器)作为委托。我想在开发控制器和视图的用户中隐藏它。 我在想的是以下内容。我将有一个LoginService,它将登录用户。将有协议LoginServiceDelegate,它具有成功和失败的两种方法。控制器可以实现LoginServiceDelegate并在LoginService中调用login方法,并获取成功或失败回调。但是,为此,我将需要某种方式让我的LoginService将调用委派回控制器。 RestKit不允许我执行此操作,这是我能够执行此操作的唯一方法,方法是使用LoginServiceDelegate初始化LoginService,将该委托存储为属性,并在成功登录或失败时在委托中调用适当的方法。 这样可以将Controller代码库保持在最低限度,并完全隐藏LoginService的工作方式及其内部使用的框架。委托的使用也使控制器与模型脱钩,因此我们有一个很好的MVC。但是,我担心Model类保留Controller对象的含义,因为它保留了委托。 您将如何使用RestKit?如果您认为我的方法是好的,那么您将作何改变以使其更好?如果您不喜欢我的方法,那么请您就为什么认为这不是一个好的做法提供反馈。 下面的代码片段应为您提供一个更好的主意
@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
干杯!     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)