2013-03-22 7 views
0

Я могу получить folder_id с помощью [Box createFolderWithName:]. Но когда я пытаюсь использовать folder_id для получения своих детей, он не работает. Вот мой код:iOS Box SDK BoxFolder.children always nil

[Box createFolderWithName:@"My APP" parentFolderID:[Box rootFolderID] share:NO callbacks:^(id<BoxOperationCallbacks>on){ 

    on.userInfo (^(NSDictionary* result) { 
     // do something with the return value (typically stored with key @"results") of the operation 

     NSNumber *appFolderId = [result objectForKey:@"folder_id"]; 
     BoxFolder *appFolder = [Box folderWithID:appFolderId]; 
     [appFolder updateWithCallbacks:^(id<BoxOperationCallbacks>on){ 
      on.after(^(BoxCallbackResponse response) { 
       if (response == BoxCallbackResponseSuccessful) { 
        NSLog(@"Folder updated. Children count is: %d", [appFolder.children count]); 
        // Send a notification, call a delegate, use KVO use locally or whatever to use the children. 
       } 
       else { 
        NSLog(@"Folder not updated."); 
       } 
      }); 


     }]; 


    }); 

}]; 

дети всегда ноль. Я также попытался с [Box rootFolder], но тот же результат.

Может ли кто-нибудь помочь мне с этим? Благодарю.

+0

Предполагая, что вы получаете действительный идентификатор папки, интересно, нужно ли теперь обновлять информацию о контенте посредством вызова updateWithCallbacks :. –

+0

Спасибо за предложение. Я попытался использовать updateWithCallbacks, но он сработает. У вас есть фрагмент кода, который я могу посмотреть, как получить детей из папки? Большое спасибо. – Wenbo

+0

Я что-то смущен. Если вы только что создали папку «Мое приложение», почему вы ожидаете чего-либо в ней. Вместо этого вы должны использовать родительскую папку с помощью метода updateWithCallbacks. Кроме того, вызов вызывает сбои, поскольку объект папки, возвращаемый folderWithID: поврежден. (Эта история привела бы к вопросу о том, почему класс Box может содержать несколько экземпляров BoxID, указывающих на разные объекты.) –

ответ

0

Я думаю, что следующий образец может помочь.

if (appFolder.isFolder) { 
     [appFolder updateWithCallbacks:^(id<BoxOperationCallbacks> on) { 
      on.after(^(BoxCallbackResponse response) { 
       if (response == BoxCallbackResponseSuccessful) { 
        NSLog(@"Folder updated. Children count is: %d", [appFolder.children count]); 
        // Send a notification, call a delegate, use KVO use locally or whatever to use the children. 
       } 
       else { 
        NSLog(@"Folder not updated."); 
       } 
      }); 
     }]; 
    } 
    else { 
     NSLog(@"NOT WORKING WITH A FOLDER!"); 
    } 
+0

Я устал, но он сбой в [BoxURLFactory urlForGetAccountTreeForFolderID:] исключение «NSInvalidArgumentException», причина: '- [__ NSCFString stringValue]: непризнанный селектор, отправленный в экземпляр. Кажется, что использование BoxFolder * appFolder = [Box folderWithID: appFolderId] не создало для него URL-адреса. – Wenbo

+0

Предлагаю вам поделиться своим кодом. Я не использовал поисковый запрос, поэтому у вас может не быть ввода. –

+0

См. Обновленный вопрос. Я использую createFolderWithName, чтобы получить файл folderId. – Wenbo

Смежные вопросы