Я довольно новыми для IOS и сейчас я работаю над этим большим проектом, который требует доступа к файлам из каналов хранения, таких как Dropbox и googleDrive ...DBRestClient не работает, когда вызывается из NSObject
мне удалось получить к файлам dropbox и манипулировать ими, но проблема в том, что я не могу этого сделать без наличия свойства DBRestClient в классе представления (UITableView
в моем случае), который не является таким MVC.
Когда я пытаюсь использовать его в другом классе, скажем NSObject
, который реализует DBRestClientDelegate, ничего не происходит.
Я знаю, что эта проблема была опубликована раньше, а некоторые говорят, что у NSObject
должна быть сильная ссылка на нее, чтобы она не была освобождена, но я сделал именно это и до сих пор ничего не происходит.
Вот некоторые из моего кода:
В NSObject
класс DropboxServices
@interface DropboxServices : NSObject <DBRestClientDelegate>
@property (nonatomic, readonly) DBRestClient *restClient;
@implementation DropboxServices
@synthesize restClient=_restClient;
- (DBRestClient *)restClient {
if (!_restClient) {
if ([[DBSession sharedSession].userIds count]) {
_restClient = [[DBRestClient alloc] initWithSession:[DBSession sharedSession]];
_restClient.delegate = self;
}
}
return _restClient;
}
- (void)restClient:(DBRestClient *)client loadedMetadata:(DBMetadata *)metadata {
NSLog(@"method called!!!!!!!!!!!!!!!!!!!");
}
Здесь вы UITableView
класс, который я использовал, чтобы иметь DBRestClient в:
@interface DropboxFolderItemsTableView : UITableView
@property (nonatomic, readonly) DropboxServices *dropboxServices;
, но когда я попытайтесь загрузить метаданные:
[[self.dropboxFolderItemsTableView.dropboxServices restClient] loadMetadata:@"/"];
ничего не происходит.
Im сталкивается с тем же вопросом, который у вас есть, хотя я не думаю, что это решение четко решает проблему MVC. Я буду искать более подходящее решение. – carbonr