Структура класса 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). Как только он выходит из области видимости, он также прекращает синхронизацию изменений с сервером.