i new in swift. question not sure how unwrapping optional value. when print object.objectforkey("profile_picture"), can see optional(<pffile: 0x7fb3fd8344d0>)
.
let userquery = pfuser.query() //first_name unique in parse. so, expect there 1 object can find. userquery?.wherekey("first_name", equalto: currentuser) userquery?.findobjectsinbackgroundwithblock({ (objects: [pfobject]?, error: nserror?) -> void in if error != nil { } object in objects! { if object.objectforkey("profile_picture") != nil { print(object.objectforkey("profile_picture")) self.userprofilepicture.image = uiimage(data: object.objectforkey("profile_pricture")! as! nsdata) } } })
you'd use if let
perform "optional binding", performing block if result in question not nil
(and binding variable profilepicture
unwrapped value in process).
it like:
userquery?.findobjectsinbackgroundwithblock { objects, error in guard error == nil && objects != nil else { print(error) return } object in objects! { if let profilepicture = object.objectforkey("profile_picture") as? pffile { print(profilepicture) { let data = try profilepicture.getdata() self.userprofilepicture.image = uiimage(data: data) } catch let imagedataerror { print(imagedataerror) } } } }
or, if want data asynchronously, perhaps:
userquery?.findobjectsinbackgroundwithblock { objects, error in guard error == nil && objects != nil else { print(error) return } object in objects! { if let profilepicture = object.objectforkey("profile_picture") as? pffile { profilepicture.getdatainbackgroundwithblock { data, error in guard data != nil && error == nil else { print(error) return } self.userprofilepicture.image = uiimage(data: data!) } } } }
it along lines, using if let
unwrap optional. , have nsdata
associated pffile
object (from getdata
method or getdatainbackgroundwithblock
, presumably).
see optional binding discussion in the swift programming language.
Comments
Post a Comment