iOS Dropbox加载缩略图错误

3
我希望您能够为我翻译一下以下内容,这是关于编程的。我需要在视图中显示Dropbox文件的缩略图。我知道我需要使用loadThumbnail方法,但我不确定具体该如何操作。
我写了以下代码:
for file in dropboxMetadata.contents {
        dbRestClient.loadThumbnail(file.path, ofSize: "s", intoPath: "https://api-content.dropbox.com/1/thumbnails/auto/")
}

但我遇到了一些这样的错误:

error making request to /1/thumbnails/dropbox/star.jpg - (4) Error Domain=NSCocoaErrorDomain Code=4 "The operation couldn’t be completed.

感谢您的帮助!

展示你的 "- (void)restClient:(DBRestClient *)client loadedThumbnail:(NSString *)destPath metadata:(DBMetadata *)metadata" 实现。 - Michael Dautermann
1
intoPath 需要是一个本地可写的位置。 - Anya Shenanigans
如果我没错的话,我需要将缩略图放在自己的URL上吗?@MichaelDautermann我还没有看到这种方法,所以当缩略图准备好时,我可以在这种方法中放置图像吗? - Karz
所以我用这个方法替换了原本的代码: client.loadThumbnail("https://api-content.dropbox.com/1/thumbnails/auto/", ofSize: "s", intoPath: "http://myUrl") 但是出现了以下错误: error making request to /1/thumbnails/dropboxhttps://api-content.dropbox.com/1/thumbnails/auto - (400) Expected 'root' to be 'dropbox', 'sandbox', or 'auto', got u'dropboxhttps:' - Karz
1
路径是文件系统路径,而不是URL。 - Michael Dautermann
1个回答

0
Petesh 的想法是正确的。intoPath 是那些缩略图的目标目录。
试试这个:
    func createTempDirectory() -> String? {
    let tempDirectoryTemplate = NSTemporaryDirectory().stringByAppendingPathComponent("XXXXX")

    let fileManager = NSFileManager.defaultManager()

    var err: NSErrorPointer = nil

    // remove any previous temporary folder that's there, in case it's there
    fileManager.removeItemAtPath(tempDirectoryTemplate)

    if fileManager.createDirectoryAtPath(tempDirectoryTemplate, withIntermediateDirectories: true, attributes: nil, error: err) {
        return tempDirectoryTemplate
    } else {
        print("can't create temporary directory at \(tempDirectoryTemplate)")
        return nil
    }
}

我在这个问题找到了上面的代码。

然后,您可以更改自己的代码以执行类似以下操作:

let temporaryDirectory = createTempDirectory()
for file in dropboxMetadata.contents {
        dbRestClient.loadThumbnail(file.path, ofSize: "s", intoPath: temporaryDirectory)
}

如果这个有效,那么你可以将 "intoPath" 参数更改为您认为更合适的任何目录。

谢谢您的回答,它似乎真的有效!现在我想知道如何获取缩略图,它们是否通过URL中的名称进行调用?类似于:var imageName = temporaryDirectory + "/star.jpg" - Karz
你是如何和在哪里打印它的?我在上面添加了几行代码来创建临时目录。 - Michael Dautermann
看起来模拟器运行良好。您可能还想更改我的代码,以便每次运行时不是删除临时目录(和其中的文件),而是仅检查该目录是否存在,如果不存在,则继续创建它。 - Michael Dautermann
谢谢,但是我的问题中出现的错误error making request to /1/thumbnails/dropbox/star.jpg一直显示着,我不明白为什么。 - Karz
好吧!我现在放弃了。也许有人能回答。 - Michael Dautermann
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接