一直在使用Google Drive iOS SDK
,并尝试构建文件夹内容列表,其中包括文件夹parent-folders&子文件夹。
Google Drive iOS SDK的功能非常简单,但考虑到下面的示例代码,如何在继续之前等待所有“ queryForFilesGetWithFileId ”completionHandler块完成?
原因是addFolderChildren添加了子文件夹&然后刷新视图,这显然需要最后完成。
GTLQueryDrive *query = [GTLQueryDrive queryForParentsListWithFileId:folderId];
[self.driveService executeQuery:query
completionHandler:^(GTLServiceTicket *ticket,
GTLDriveParentList *parents,
NSError *error)
{
if (error == nil)
{
for (GTLDriveParentReference *parent in parents)
{
if ([parent.isRoot intValue] == 1)
{
// add folder root -> "My Drive"
}
else
{
GTLQueryDrive *query = [GTLQueryDrive queryForFilesGetWithFileId:parent.identifier];
[self.driveService executeQuery:query
completionHandler:^(GTLServiceTicket *ticket,
GTLDriveFile *file,
NSError *error)
{
if (error == nil)
{
// add folder parent -> file.title
}
else
{
[self handleFailed:error];
}
}];
}
}
// add folder children
// how do we wait here until all above queryForFilesGetWithFileId completionhandler blocks are done?
[self addFolderChildren:folderId];
}
else
{
[self handleFailed:error];
}
}];
答案 0 :(得分:0)
您可以将@protocol用于此
喜欢
@protocol MeuDelegate <NSObject>
@optional
-(void) meuEditingDone:(Meu*) meu;
@end
@interface EditMeu : MeuBasicViewController {
id <MeuDelegate> delegate;
}
@property (retain) id delegate;
@end
并在.m文件中执行以下操作
@synthesize delegate;
在你的完成处理程序中调用这个方法,所以在那里你可以继续。