Структура класса Dropbox Datastore на iOS

Ниже приведен пример проекта iOS для API хранилища данных Dropbox: https://www.dropbox.com/developers/datastore/sdks/ios

Внутри основного класса этого проекта (TasksController.m) он имеет некоторые свойства, связанные с API:

@property (nonatomic, readonly) DBAccountManager *accountManager;
@property (nonatomic, readonly) DBAccount *account;
@property (nonatomic, retain) DBDatastore *store;

... а также некоторые частные методы:

- (DBAccountManager *)accountManager {
    return [DBAccountManager sharedManager];
}

- (DBAccount *)account {
    return self.accountManager.linkedAccount;
}

- (DBDatastore *)store {
    if (!_store && self.account) {
        _store = [DBDatastore openDefaultStoreForAccount:self.account error:nil];
    }
    return _store;
}

Там нет комментариев кода, описывающих их. Почему этот класс структурирован таким образом? Все ли классы, работающие с API, должны использовать похожую структуру?

Например, я могу просто объявить DBAccount *account в viewDidLoad или я должен как-то использовать свойство только для чтения?

1 ответ

Решение

Я думаю, это зависит от того, какую область вы хотите. Если вам не нужно DBAcccount вне viewDidLoad, тогда не стесняйтесь просто объявить это там. Для DBDatastoreоднако вам необходимо убедиться, что оно остается в пределах действия вашего приложения (или, по крайней мере, до тех пор, пока вы хотите синхронизировать его с Dropbox). Как только он выходит из области видимости, он также прекращает синхронизацию изменений с сервером.

Другие вопросы по тегам