0

我希望我能得到一些建议。我正在制作一个包含图像的测验应用程序。该测验有 4 个答案框和一个图像视图。我可以通过 将图像下载到测验中parse.com,但是我现在希望能够单击图像,然后将其转到单独的视图控制器,以便您可以全屏放大图像。我已经能够调用pffile并 segue 它,但是当我尝试getdatainbackgroundwithblock在第二个视图控制器中时,我的应用程序崩溃了。你认为我应该如何分割图像?

编辑

是的对不起。所以我遇到的崩溃是代码=1 地址=0x48 处的错误,它发生在 getdatainbackgroundwithblock 的 +55 行。

我已经粘贴了我在下面使用的代码的片段。

我用它来调用第一个视图中的图像并将其转换为我的 PFImageView 中的图像。

`for object : PFObject in objectsArray as! [PFObject] { 让 image = object["Image"] as! PFFile 让 transimage = image

                image.getDataInBackgroundWithBlock {
                    (imageData:NSData?, error:NSError?) -> Void in
                    if error == nil {
                        let finalimage = UIImage(data: imageData!)
                        //  self.imageView.append(finalimage!)
                        self.imageView.image = final image`

然后我像这样将它传递给我的第二个视图控制器。

`override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if(segue.identifier == "ZoomImage"){

    // Get the new view controller using [segue destinationViewController].
    var detailScene = segue.destinationViewController as! ZoomImageViewController



            detailScene.currentObject = transimage as! PFFile

        NSLog("checkone")

    }
}`

在我的第二个视图控制器中,我试图将其恢复为这样的图像。

` if let object = currentObject { NSLog("(currentObject)")

        var initialThumbnail = UIImage(named: "question")
        NSLog("check1")
        imageView.image = initialThumbnail
        NSLog("check2")
        NSLog("check3")

        object.getDataInBackgroundWithBlock {

            (imageData:NSData?, error:NSError?) -> Void in
            if error == nil {
            NSLog("check4")
            let finalimage = UIImage(data: imageData!)
            //  self.imageView.append(finalimage!)
            self.imageView.image = finalimage
            NSLog("check5")`

我会得到一个 3 的 NSLog,然后代码就会中断。currentObject 的 NSLog 也带回了一个 PFFile,所以我相信它是真的。我哪里错了?有没有更好的方法来通过它?

4

2 回答 2

1

你是对的,我不需要getdata。我摆脱了这一点,我没有对我的 pffile 进行 segued,而是对携带图像和文本的 pfobject 进行了 segued。然后我将该对象称为文件并将其放入 uiimageview 中。我会发布我使用的代码,以防有人想要它。

于 2015-06-23T19:18:26.640 回答
0

为什么在两个视图控制器中都调用 getDataInBackgroundWithBlock ?您已经在 PFFile 实例中获取数据,因此无需调用它两次。这可能是问题所在。

于 2015-06-23T18:12:21.090 回答