我希望我能得到一些建议。我正在制作一个包含图像的测验应用程序。该测验有 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,所以我相信它是真的。我哪里错了?有没有更好的方法来通过它?