iPhone DropBox API:如何加载文件?

iPhone DropBox API:如何加载文件?,iphone,objective-c,cocoa-touch,dropbox,dropbox-api,Iphone,Objective C,Cocoa Touch,Dropbox,Dropbox Api,关于dropBox集成到iPhone应用程序的一个非常基本的问题 我遵循了DropBoxSDK的设置,一切正常。我可以登录到我的帐户并将其链接。所以我把一切都安排好了 现在我想用它从dropBox加载一个文件并再次保存。考虑只想同步一个文件(为了简单起见),称为“示例.txt”,它位于我的Dropbox中的“示例”文件夹中。相同的“example.txt”保存在iPhone上我的应用程序的Documents目录中 dropBox自述文件模糊地暗示了以下代码,我发现这些代码非常神秘,无法真正了解如

关于dropBox集成到iPhone应用程序的一个非常基本的问题

我遵循了DropBoxSDK的设置,一切正常。我可以登录到我的帐户并将其链接。所以我把一切都安排好了

现在我想用它从dropBox加载一个文件并再次保存。考虑只想同步一个文件(为了简单起见),称为“示例.txt”,它位于我的Dropbox中的“示例”文件夹中。相同的“example.txt”保存在iPhone上我的应用程序的Documents目录中

dropBox自述文件模糊地暗示了以下代码,我发现这些代码非常神秘,无法真正了解如何加载或保存文件:

2. Make an request on the rest client:

   [[self restClient] loadMetadata:@"/"];

3. Implement the DBRestClientDelegate methods needed to get the results of the
   particular call you made:

   - (void)restClient:(DBRestClient*)client 
       loadedMetadata:(DBMetadata*)metadata {

       NSLog(@"Loaded metadata!");
   }

   - (void)restClient:(DBRestClient*)client 
       metadataUnchangedAtPath:(NSString*)path {

       NSLog(@"Metadata unchanged!");
   }

   - (void)restClient:(DBRestClient*)client 
       loadMetadataFailedWithError:(NSError*)error {

       NSLog(@"Error loading metadata: %@", error);
   }
所以我(希望如此)简单的问题是我如何能够:

  • 检查我的dropbox中是否有示例文件夹
  • 如果没有,请创建一个并将app文档中的example.txt保存到此示例文件夹中
  • 加载example.txt
  • 一旦程序退出:将example.txt保存到DropBox
我真的无法在网站上的DropBox文档中找到这些基本步骤的答案。他们提供的例子让我觉得太困惑了。。。特别是因为它只是关于加载文件,而不是保存他们,因为我可以看到


如果您能为我提供帮助或建议,我将不胜感激。

好的,我找到了保存example.txt文件的方法:

-(void) DBupload:(id)sender
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Example.txt"];

    [self.restClient uploadFile:@"NoteBook.txt" toPath:@"/example" fromPath:filePath];
}
事实证明,无需创建文件夹,dropbox将在不存在的情况下自动为您执行此操作

这用于下载相同的文件表单dropbox:

-(void) DBdownload:(id)sender
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Example.txt"];
    NSError *error;

    [self.restClient loadFile:@"/example/Example.txt" intoPath:filePath];

    if (filePath) { // check if file exists - if so load it:
        NSString *tempTextOut = [NSString stringWithContentsOfFile:filePath
                                                          encoding:NSUTF8StringEncoding
                                                             error:&error];
    }
}

如果您遇到类似的问题,希望这对您有所帮助。

在DBdownload函数中,您可以通过实现DBRestClientDelegate方法loadedFile和loadeffiledwitheror跳过检查