首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当从DBRestClient调用NSObject时,NSObject无法工作

当从DBRestClient调用NSObject时,NSObject无法工作
EN

Stack Overflow用户
提问于 2014-01-20 15:58:14
回答 1查看 266关注 0票数 2

我对IOS相当陌生,我现在正在从事这个需要从dropbox和googleDrive等存储通道访问文件的大型项目。

我成功地访问了dropbox文件并对它们进行了操作,但问题是,如果没有视图类上的DBRestClient属性(在我的例子中是UITableView),就无法做到这一点。

当我尝试将它放在另一个类上时,比如一个实现了NSObject的DBRestClientDelegate,什么都不会发生。

我知道这个问题已经发布过了,有些人说NSObject需要有一个强有力的引用,这样它才不会被释放,但是我就是这么做的,仍然什么也没有发生。

以下是我的一些代码:

NSObject类DropboxServices

代码语言:javascript
复制
@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类:

代码语言:javascript
复制
@interface DropboxFolderItemsTableView : UITableView 
@property (nonatomic, readonly) DropboxServices *dropboxServices;

但是当我尝试加载元数据时:

代码语言:javascript
复制
[[self.dropboxFolderItemsTableView.dropboxServices restClient] loadMetadata:@"/"];

什么都没发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-05 14:59:08

在几乎两周没有反应后,我尝试了一种完全不同的方法。在这篇文章中,我发现了一个有趣的事实:Custom UIView as UITableView delegate and datasource?,即我的每个UITableViews的委托控制器不必是显示它的视图控制器。

因此,我可以将我的DBRestClient放在一个新创建的viewController中(或者在我的示例dropboxFolderItemsTableViewController中是一个tableViewController ),并从实际包含表视图的视图控制器中获得对它的强烈引用,然后将实际的dropbox tableView (dropboxFolderItemsTableView)分配给这个新创建的viewController的表视图。

代码语言:javascript
复制
self.dropboxFolderItemsTableViewController=[[DropboxFolderItemsTableViewController alloc]init];
self.dropboxFolderItemsTableViewController.tableView=self.dropboxFolderItemsTableView;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21238509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档