Kullanıcının fb profil resmini getirmeye çalışıyorum ama şu ana kadar yapamadık. Ben basit bir şey yapmaya çalışıyorum: kullanıcı fb hesabı ile giriş yapın ve uygulama onun adı, e-posta ve profil resmi görünür başka bir görünüm gider. Kullanıcı adı ve e-posta tamam, ancak resmi alamıyorum!Facebook'un profil resmini nasıl çekebilirsiniz?
Uygulama benim gerçek kodumla çöküyor, çünkü görünüşe göre nil isteğe bağlı bir değeri kaldırıyorum ama neden sıfır olduğunu bilmiyorum.
Kodum: yorumlarınızı itibaren
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"id,email,name,picture.width(480).height(480)"])
graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
if ((error) != nil)
{
// Process error
print("Error: \(error)")
}
else
{
print("fetched user: \(result)")
let userName : NSString = result.valueForKey("name") as! NSString
print("User Name is: \(userName)")
let userEmail : NSString = result.valueForKey("email") as! NSString
print("User Email is: \(userEmail)")
let id = result.valueForKey("id") as! String
self.nameLabel.text = userName as String
self.emailLabel.text = userEmail as String
self.profilePic.image = self.getProfPic(id)
}
})
}
func getProfPic(fid: String) -> UIImage? {
if (fid != "") {
let imgURLString = "http://graph.facebook.com/" + fid + "/picture?type=large" //type=normal
let imgURL = NSURL(string: imgURLString)
let imageData = NSData(contentsOfURL: imgURL!)
let image = UIImage(data: imageData!) // CODE CRASHES IN HERE
return image
}
return nil
}
Açıkça, 'imageData' nil'dir, yani URL doğru değildir. Neden niçin başarısız olduğunu görebilmek için bir istisna atar "NSData" yöntemini kullanmayın. – rmaddy
Proje gezgininde Xcode'da "Breakpoint Navigator'ı Göster" düğmesine tıklayın. Ardından, ekranın sol alt köşesindeki artı işaretini tıklayın. "İstisna Ayrılma Noktası Ekle" ye tıklayın. Bir özel durumla karşılaşıldığında bir kesme noktası eklemelidir. Ardından, "po" yazabilir ve bununla ilişkili bir bellek adresi/değeri olup olmadığını görebilirsiniz. Bu size biraz yön vermeli: Nereye bakmalı. –
Adrian
getProfPic func'de: image = UIImage (data: imageData!) // BURADA KOD KAZALARI Yaptım, ancak bulduğum kodun çoğu objelerdeydi ve sadece birkaç tanesi hızlıydı. Bu, stackoverflow'ta benzer bir soruda bulduğum örneklerden biriydi. –