Data not getting through segue
<p>I'm working with a mapview that contains annotations.  When the info button on the annotation is pressed I query my cloudkit database and find the record that has the same name as the pressed annotation.</p>

<p>I then assign the data returned from cloudkit to variables so that I can send them through a segue to a detailViewController.</p>

<p>I know the data is getting returned from the query as I can print it before the segue.  However, none of the data seems to be getting through the segue, which causes a error on the detailView when unwrapping a nil.</p>

<p>I feel like the issue with with NSOperationQueue, as I don't know much about that.  But I'm not sure.</p>

<p>Here is the code I"m using...</p>

<pre><code>    func mapView(mapView: MKMapView, annotationView: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {

let cloudContainer = CKContainer.defaultContainer()
let publicData = cloudContainer.publicCloudDatabase

let tappedPlace = annotationView.annotation!.title!! as String

let predi = NSPredicate(format: "Name = %@", tappedPlace)
let iquery = CKQuery(recordType: "Locations", predicate: predi)

publicData.performQuery(iquery, inZoneWithID: nil, completionHandler: {
(results, error) -&gt; Void in

if error != nil {
    print(error)
    return
}

        if let results = results {
            print("Downloaded data for selected location for \(tappedPlace)")

            NSOperationQueue.mainQueue().addOperationWithBlock() {
                if(results.count &gt; 0){

                    let dataToSend = results[0]
                    self.placeLocation = dataToSend.objectForKey("Location") as! CLLocation
                    self.placeImage = dataToSend.objectForKey("Image1") as! CKAsset
                    self.placeName = dataToSend.objectForKey("Name") as! String
                    self.placeCity = dataToSend.objectForKey("City") as! String
                    self.placeStory = dataToSend.objectForKey("Story") as! String


                    self.performSegueWithIdentifier("fromMap", sender: self)


                }

            }


        }
    })
}

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

        if let destinationController = segue.destinationViewController as? DetailViewController {

            destinationController.loadedName = self.placeName
            destinationController.loadedCity = self.placeCity
            destinationController.loadedStory = self.placeStory
            destinationController.loadedLocation = self.placeLocation

        }

    }
}
</code></pre>

<p>}</p>