Dropbox Delegate方法未被调用

时间:2012-08-29 08:44:56

标签: objective-c ios delegates dropbox-api

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

我做错了什么/我需要改变什么才能使其正常工作?

Dropbox Service将DBRestClientDelegate作为“超类”(不知道我究竟如何调用)

@interface DropboxService : CloudProviderService <DBRestClientDelegate> {
}

编辑:

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

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

来自德国的问候

亚历山大

2 个答案:

答案 0 :(得分:0)

您还需要在init

之后设置委托
DBRestClient.delegate = self;

来自此界面

@interface DBRestClient : NSObject { ... id<DBRestClientDelegate> delegate;

答案 1 :(得分:0)

该标头并未说明DropboxServiceDBRestClientDelegate

的子类

它表示DropboxService符合DBRestClientDelegate

的协议

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

这是我的代码中符合DBRestClientDelegate

的样子
- (DBRestClient*)restClient {
    if (restClient == nil) {
        restClient = [((DBRestClient *)[DBRestClient alloc]) initWithSession:[DBSession sharedSession]];
        restClient.delegate = self;
    }
    return restClient;
}