Need to see if your shared folder is taking up space on your dropbox 👨‍💻? Find out how to check here.

Forum Discussion

Zoey03's avatar
Zoey03
Helpful | Level 6
8 years ago
Solved

IOS build error: No visible @interface for 'DBFILESUserAuthRoutes' declares the selector 'uploadData

 

DBUserClient * client = [DBClientsManager authorizedClient ];

DBFILESWriteMode *mode = [[DBFILESWriteMode alloc] initWithOverwrite];

   

[[client.filesRoutes uploadData:objPath                                  

                                       mode:mode

                          autorename:@(YES)

                      clientModified:nil

                                mute:@(NO)

                           inputData:fileData]

      setResponseBlock:^(DBFILESFileMetadata *result, DBFILESUploadError *routeError, DBRequestError *networkError) {

          if (result) {

              NSLog(@"%@\n", result);

          } else {

              NSLog(@"%@\n%@\n", routeError, networkError);

          }

      }];

 

 

 

that's the code encountered the error.

I tried many times but still not found the way to correct it. 

 

  • Still I don't know why it encountered this error,,,

    No visible @interface for 'DBFILESUserAuthRoutes' declares the selector 'uploadData:mode:autorename:clientModified:mute:inputData:'

     

     

    DBUserClient * client = [DBClientsManager authorizedClient ];
    DBFILESWriteMode *mode = [[DBFILESWriteMode alloc] initWithOverwrite];
        [[[client.filesRoutes uploadData:@"/test/path/in/Dropbox/account/my_output.txt"
                                     mode:mode
                               autorename:@(YES)
                           clientModified:nil
                                     mute:@(NO)
                                inputData:fileData]
           setResponseBlock:^(DBFILESFileMetadata *result, DBFILESUploadError *routeError, DBRequestError *networkError) {
               if (result) {
                   NSLog(@"%@\n", result);
               } else {
                   NSLog(@"%@\n%@\n", routeError, networkError);
               }
           }] setProgressBlock:^(int64_t bytesUploaded, int64_t totalBytesUploaded, int64_t totalBytesExpectedToUploaded) {
               NSLog(@"\n%lld\n%lld\n%lld\n", bytesUploaded, totalBytesUploaded, totalBytesExpectedToUploaded);
           } ] ;

       I compared the demo with these codes and they are the same.  Really need help!

  • Zoey03 To clarify, did you solve this, or do you still need help? You marked your last reply as a solution.

     

    Anyway, I recommend just letting Xcode autocomplete the method call, as that will give you the definition for the version of the SDK you have installed.

     

    It sounds like you're referring to this sample, which is now out of date. (I'll ask the team to update that.) It's just missing the new propertyGroups parameter, to which you can pass nil if you're not using that feature. So, an updated version would look like:

     

    NSData *fileData = [@"file data example" dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
    
    // For overriding on upload
    DBFILESWriteMode *mode = [[DBFILESWriteMode alloc] initWithOverwrite];
    
    [[[client.filesRoutes uploadData:@"/test/path/in/Dropbox/account/my_output.txt"
                                mode:mode
                          autorename:@(YES)
                      clientModified:nil
                                mute:@(NO)
                      propertyGroups:nil
                           inputData:fileData]
      setResponseBlock:^(DBFILESFileMetadata *result, DBFILESUploadError *routeError, DBRequestError *networkError) {
          if (result) {
              NSLog(@"%@\n", result);
          } else {
              NSLog(@"%@\n%@\n", routeError, networkError);
          }
      }] setProgressBlock:^(int64_t bytesUploaded, int64_t totalBytesUploaded, int64_t totalBytesExpectedToUploaded) {
          NSLog(@"\n%lld\n%lld\n%lld\n", bytesUploaded, totalBytesUploaded, totalBytesExpectedToUploaded);
      }];

     

     

7 Replies

Replies have been turned off for this discussion
  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    8 years ago

    It sounds like you're using code written for an older version of the SDK with a newer version of the SDK, where the method definition has since been changed. You can find the documentation for the current method definition here.

     

    You can also have Xcode fill this in automatically using the Xcode autocomplete feature. E.g., type "

    client.filesRoutes uploadData" and select the autocomplete option for the desired method.

  • Zoey03's avatar
    Zoey03
    Helpful | Level 6
    8 years ago

    Still I don't know why it encountered this error,,,

    No visible @interface for 'DBFILESUserAuthRoutes' declares the selector 'uploadData:mode:autorename:clientModified:mute:inputData:'

     

     

    DBUserClient * client = [DBClientsManager authorizedClient ];
    DBFILESWriteMode *mode = [[DBFILESWriteMode alloc] initWithOverwrite];
        [[[client.filesRoutes uploadData:@"/test/path/in/Dropbox/account/my_output.txt"
                                     mode:mode
                               autorename:@(YES)
                           clientModified:nil
                                     mute:@(NO)
                                inputData:fileData]
           setResponseBlock:^(DBFILESFileMetadata *result, DBFILESUploadError *routeError, DBRequestError *networkError) {
               if (result) {
                   NSLog(@"%@\n", result);
               } else {
                   NSLog(@"%@\n%@\n", routeError, networkError);
               }
           }] setProgressBlock:^(int64_t bytesUploaded, int64_t totalBytesUploaded, int64_t totalBytesExpectedToUploaded) {
               NSLog(@"\n%lld\n%lld\n%lld\n", bytesUploaded, totalBytesUploaded, totalBytesExpectedToUploaded);
           } ] ;

       I compared the demo with these codes and they are the same.  Really need help!

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    8 years ago

    Zoey03 To clarify, did you solve this, or do you still need help? You marked your last reply as a solution.

     

    Anyway, I recommend just letting Xcode autocomplete the method call, as that will give you the definition for the version of the SDK you have installed.

     

    It sounds like you're referring to this sample, which is now out of date. (I'll ask the team to update that.) It's just missing the new propertyGroups parameter, to which you can pass nil if you're not using that feature. So, an updated version would look like:

     

    NSData *fileData = [@"file data example" dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
    
    // For overriding on upload
    DBFILESWriteMode *mode = [[DBFILESWriteMode alloc] initWithOverwrite];
    
    [[[client.filesRoutes uploadData:@"/test/path/in/Dropbox/account/my_output.txt"
                                mode:mode
                          autorename:@(YES)
                      clientModified:nil
                                mute:@(NO)
                      propertyGroups:nil
                           inputData:fileData]
      setResponseBlock:^(DBFILESFileMetadata *result, DBFILESUploadError *routeError, DBRequestError *networkError) {
          if (result) {
              NSLog(@"%@\n", result);
          } else {
              NSLog(@"%@\n%@\n", routeError, networkError);
          }
      }] setProgressBlock:^(int64_t bytesUploaded, int64_t totalBytesUploaded, int64_t totalBytesExpectedToUploaded) {
          NSLog(@"\n%lld\n%lld\n%lld\n", bytesUploaded, totalBytesUploaded, totalBytesExpectedToUploaded);
      }];

     

     

  • Zoey03's avatar
    Zoey03
    Helpful | Level 6
    8 years ago

    Thanks a million!!  It finally passed when I add that line of code.

    yesterday I marked your reply as a solution by mistaken but I didn't know how to undo, while today it is truly solved! 

     

  • MarkStasak's avatar
    MarkStasak
    Explorer | Level 4
    7 years ago

    Just updated a project to SDK 3.9.4 and got similar error messages from a slightly different cause.  You may need to add strictConflict:@(NO) to certain methods like uploadData, in the same manner as propertyGroups:nil.  

  • iOSDev's avatar
    iOSDev
    New member | Level 2
    7 years ago

    same code doesn't worked for me. same error i am getting

    No visible @interface for 'DBFILESUserAuthRoutes' declares the selector 'uploadData:mode:autorename:clientModified:mute:propertyGroups:inputData:'

     

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.

The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X, Facebook or Instagram.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!