Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parse platform 解析加载图像Swift 3.0_Parse Platform_Uiimage_Backend_Swift3 - Fatal编程技术网

Parse platform 解析加载图像Swift 3.0

Parse platform 解析加载图像Swift 3.0,parse-platform,uiimage,backend,swift3,Parse Platform,Uiimage,Backend,Swift3,我正在运行自己的解析服务器,一切正常,但是 我无法将PFFile转换为UIImage,这是它向我抛出的错误: 无法将类型为“(NSData?,NSError?)->Void”的值转换为预期的参数类型PFDataResultBlock” 以下是我使用的代码: var imageFromParse = object.object(forKey: "ProfilePicture") as! PFFile! imageFromParse!.getDataI

我正在运行自己的解析服务器,一切正常,但是 我无法将PFFile转换为UIImage,这是它向我抛出的错误:

无法将类型为“(NSData?,NSError?)->Void”的值转换为预期的参数类型PFDataResultBlock”

以下是我使用的代码:

var imageFromParse = object.object(forKey: "ProfilePicture") as! PFFile!
                        imageFromParse!.getDataInBackgroundWithBlock({ (imageData: NSData?, error: NSError?) -> Void in
                            var image: UIImage! = UIImage(data: imageData!)!
                        })
所有这些在Swift 2.3中都能完美地发挥作用。
谢谢您的帮助。

我在swift 3.0上做了一些测试,下面的代码对我很有用:

    let query = PFQuery(className: "FileTest")

    query.findObjectsInBackgroundWithBlock {
        (objects: [PFObject]?, error: NSError?) -> Void in

        let firstObject = objects?.first as PFObject!
        let objectFile = firstObject.objectForKey("file") as! PFFile
        objectFile.getDataInBackgroundWithBlock({ (imageData: NSData?, error: NSError?) -> Void in
            let image = UIImage(data: imageData!)
            if image != nil {
                self.imageOutlet.image = image
            }

        })
    }
在这段代码中,我首先获取所有FileTest集合,然后获取第一个对象(当然只是为了测试),然后读取文件。请注意,为了获取test列下存在的PFFile,我使用了objectForKey。在我得到文件后,我调用getDataInBackground获取数据,从数据创建UIImage并更新我的imageView 一切按预期进行。。
试着运行这段代码,看看它是否适合您。

我在swift 3.0上做了一些测试,下面的代码适合我:

    let query = PFQuery(className: "FileTest")

    query.findObjectsInBackgroundWithBlock {
        (objects: [PFObject]?, error: NSError?) -> Void in

        let firstObject = objects?.first as PFObject!
        let objectFile = firstObject.objectForKey("file") as! PFFile
        objectFile.getDataInBackgroundWithBlock({ (imageData: NSData?, error: NSError?) -> Void in
            let image = UIImage(data: imageData!)
            if image != nil {
                self.imageOutlet.image = image
            }

        })
    }
在这段代码中,我首先获取所有FileTest集合,然后获取第一个对象(当然只是为了测试),然后读取文件。请注意,为了获取test列下存在的PFFile,我使用了objectForKey。在我得到文件后,我调用getDataInBackground获取数据,从数据创建UIImage并更新我的imageView 一切按预期进行。。
尝试运行此代码,看看它是否适合您。

使用
数据
错误
而不是
NSData
NSError
使用
数据
错误
而不是
NSData
NSError
Swift 3.0:

if let imageFromParse = user.object(forKey: "ProfilePicture") as? PFFile {
    imageFromParse.getDataInBackground(block: {
        (data: Data?, error: Error?) in

        if error == nil {

        }
    })

}
主要更新:

(数据:NSData?,错误:NSError?)

已更新为:

(数据:数据,错误:错误

以及:

除非您另行指定,否则Swift 3将要求所有标签,这意味着方法名称不再详细说明其参数。在实践中,这通常意味着方法名称的最后一部分被移动为第一个参数的名称。 有关更多信息,请访问:

Swift 3.0:

if let imageFromParse = user.object(forKey: "ProfilePicture") as? PFFile {
    imageFromParse.getDataInBackground(block: {
        (data: Data?, error: Error?) in

        if error == nil {

        }
    })

}
主要更新:

(数据:NSData?,错误:NSError?)

已更新为:

(数据:数据,错误:错误

以及:

除非您另行指定,否则Swift 3将要求所有标签,这意味着方法名称不再详细说明其参数。在实践中,这通常意味着方法名称的最后一部分被移动为第一个参数的名称。
查看更多信息:

它甚至不允许我使用
findobjectsinbackgroundithblock
xcode将其更改为
findObjectsInBackground
这真的很奇怪,您是否使用最新的解析SDK?是的,我通过cocoapodsweird添加了解析,因为它已重命名为
findObjectsInBackground(block:)
但是我在文档中找不到任何东西来处理这个问题……你能用cocoapods添加解析吗?我还能做的就是将我的项目上传到github,这样你就可以克隆它并测试它是否适合你。它甚至不允许我使用
findObjectsInBackgroundWithBlock
xcode将其更改为
findObjectsInBackground
真奇怪,你使用的是最新的Parse SDK吗?是的,我通过CocoapodsWird添加了Parse,因为它已经被重命名为
findObjectsInBackground(block:)
,但是我在文档中找不到任何东西来处理这个问题……你能用cocoapods添加解析吗?我还能做的是将我的项目上传到github,这样你就可以克隆它并测试它是否适合你..我发现使用缩短版本的签名要容易得多:“(数据,错误)in”。我发现使用缩短版本的签名要容易得多:“(数据,错误)in”。