1

Dropbox API に問題があります。私は別の開発者によって開始された大きなアプリに取り組んでいます。次に、コードをきれいにします。すべてのデリゲート メソッド (loadedMetadata & Co.) はビューに直接ありました。今、私はそれらを独自のクラスに抽出したいと考えています。そこで、すべてのメソッドを含む DropboxService クラスを作成しました。ビューを取得し、DropboxService からメソッド loadMetadata を呼び出します。メソッドが呼び出され、正常に動作します。ただし、Delegate メソッドの loadedMetadata は呼び出されません。

私は何を間違えましたか / これを正しく機能させるには何を変更する必要がありますか?

Dropbox サービスには、DBRestClientDelegate が「スーパークラス」として含まれています (正確にどのように呼び出したかはわかりません)。

@interface DropboxService : CloudProviderService <DBRestClientDelegate> {
}

編集:

Service は AppDelegate でインスタンス化され、そこで変数になります。

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

ドイツからのご挨拶

アレクサンダー

4

2 に答える 2

0

initの後にデリゲートも設定する必要があります

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 に答える