0

This is my query code from parse:

func queryFromParse(){
        //var query = PFQuery(className: "Posts")
        var query = PFQuery(className: "currentUploads")
        query.orderByDescending("createdAt")
        query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError?) -> Void in
            if error == nil
            {
                if let newObjects = objects as? [PFObject] {

                    for oneobject in newObjects {
                        let text = oneobject["imageText"] as! String
                        let username = oneobject["username"] as! String
                        let time = oneobject.createdAt!
                        let userImage = oneobject["imageFile"] as! PFFile
                        let imageURL = userImage.url // <- Bruker nå userImage.URL, henter ikke bildefilen med en gang

                        var OneBigObject = Details(username: username, text: text, CreatedAt: time, image: imageURL!)

                        self.arrayOfDetails.append(OneBigObject)

                        dispatch_async(dispatch_get_main_queue()) { self.collectionView.reloadData() }

                    }
                }
            }
        }
    }

I get error in code:

let userImage = oneobject["imageFile"] as! PFFile

fatal error: unexpectedly found nil while unwrapping an Optional value

I know why, because one of the rows in parse does not contains image: enter image description here

Any ideas? What can I do to not get crash if there is not image there?

3 Answers 3

1

Here you go, try something likt this:

func queryFromParse(){
        var query = PFQuery(className: "currentUploads")
        query.orderByDescending("createdAt")
        query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError?) -> Void in
            if error == nil
            {
                if let newObjects = objects as? [PFObject] {

                    for oneobject in newObjects {
                        let text = oneobject["imageText"] as! String
                        let username = oneobject["username"] as! String
                        let time = oneobject.createdAt!

                        if let userImage = oneobject["imageFile"] as? PFFile {
                            let userImage = oneobject["imageFile"] as! PFFile

                            let imageURL = userImage.url // <- Bruker nå userImage.URL, henter ikke bildefilen med en gang

                            var OneBigObject = Details(username: username, text: text, CreatedAt: time, image: imageURL!)

                            self.arrayOfDetails.append(OneBigObject)

                            dispatch_async(dispatch_get_main_queue()) { self.collectionView.reloadData() }
                        }
                    }
                }
            }
        }
    }
Sign up to request clarification or add additional context in comments.

Comments

0

optionally unwrap that object:

let imageFile = oneobject["imageFile"] as PFFile
imageFile.getDataInBackgroundWithBlock {
  (imageData: NSData?, error: NSError?) -> Void in
  if error == nil {
    if let imageData = imageData {
        let image = UIImage(data:imageData)
    }
  }
}

7 Comments

But what happen if i have a list of 1000 images, and only 1 of them has no image? Then it will not show any images at all, or?
Hm, whats wrong here?: s16.postimg.org/ne1ciqm6d/…
I am still getting that error tho: s27.postimg.org/nqjbtqtcz/…
well u cant get url from image stored in parse database .. it doesnt make sense ...
Yes, because in cellForItemAtIndexPath, i use this: "cell.imageView.setImageWithUrl(NSURL(string: post.image)!, placeHolderImage: UIImage(named: "Placeholder"))"
|
0

try use this

if let userImage = oneobject["imageFile"] as? PFFile {
            let imageURL = userImage.url
        }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.