1

我对 Dropbox API 有疑问。我正在开发由另一位开发人员启动的大型应用程序。现在我要清理代码。所有的委托方法(loadedMetadata & Co.)都直接在视图中。现在我想将它们提取到自己的类中。所以我创建了一个包含所有方法的 DropboxService 类。所以我有视图并从 DropboxService 调用方法 loadMetadata。该方法被调用并且工作正常。但是从不调用Delegate 方法loadedMetadata。

我做错了什么/我必须改变什么才能让它正常工作?

Dropbox 服务将 DBRESTClientDelegate 作为“超类”(不知道我到底是如何称呼它的)

@interface DropboxService : CloudProviderService <DBRestClientDelegate> {
}

编辑:

该服务在 AppDelegate 中实例化,并且在那里是一个变量:

- (DropboxService *)getDropboxService {
    if (self.dropboxService == nil) {
        self.dropboxService = [[DropboxService alloc] init];
    }
    return self.dropboxService;
}

来自德国的问候

亚历山大

4

2 回答 2

0

您还需要在初始化后设置委托

DBRestClient.delegate = self;

从这个界面

@interface DBRestClient : NSObject { ... id<DBRestClientDelegate> delegate;
于 2012-08-29T08:55:30.233 回答
0

那个标题没有说这DropboxService是一个子类DBRestClientDelegate

它说DropboxService符合协议 DBRestClientDelegate

Dropbox 示例项目解释了所有这些,但您想查找您设置的位置DBRestClient并确保DropboxService成为该实例的委托。

这就是我的代码中的样子,它符合DBRestClientDelegate

- (DBRestClient*)restClient {
    if (restClient == nil) {
        restClient = [((DBRestClient *)[DBRestClient alloc]) initWithSession:[DBSession sharedSession]];
        restClient.delegate = self;
    }
    return restClient;
}
于 2012-08-29T09:06:58.617 回答