PF文件?不可转换为 'StringLiteralConvertible' 'AnyObject' 不可转换为 'String'
PFFile? is not convertible to 'StringLiteralConvertible' 'AnyObject' is not convertible to 'String'
我刚刚更新:
xcodeVersion 6.3 (6D570)
Swift 1.2 昨晚把我的话搞砸了,显然他们在 Swift 或 Parse 中做了一些更改。
我很困惑,我只是不知道如何解决这个问题...需要帮助。如果其他人遇到过相同的情况并已修复,请帮助我。
import UIKit
import Parse
class ProfileViewController: UIViewController, UITextFieldDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
// MARK: Variables declaration
@IBOutlet weak var uploadPhotoBtn: UIButton!
@IBOutlet weak var profilePhotoImageView: UIImageView!
@IBOutlet var welcomeMessageLabel: UIView!
@IBOutlet weak var greetings: UILabel!
var imagePicker = UIImagePickerController()
var existingImage : UIImage?
var user = PFUser.currentUser()
// The view has loaded this is the function that will be run at first before anything else
override func viewDidLoad() {
super.viewDidLoad()
// MARK: make a circle image
profilePhotoImageView.layer.cornerRadius = profilePhotoImageView.frame.size.width/2
profilePhotoImageView.clipsToBounds = true
//show my status
var mood = self.user["status"] as! String //=> 'AnyObject' is not convertible to 'String'
self.greetings.text? = ( "\(mood)" )
//get image if existing
self.user[ "avatar" ] as? PFFile //=> 'PFFile? is not convertible to 'StringLiteralConvertible'
if let userImageFile = self.user["avatar"] as? PFFile {PFFile? is not convertible to 'StringLiteralConvertible'
userImageFile.getDataInBackgroundWithBlock({ (imageData:NSData!, error: NSError!) -> Void in
if error == nil {
self.existingImage = UIImage(data: imageData)
self.profilePhotoImageView.image = self.existingImage
}else {
let alert = UIAlertView(title: "Oops!", message: "Unable to get your profile photo", delegate: self, cancelButtonTitle: "Ok!")
alert.show()
}
})
}
通过反复试验.. 这对我有用 Parse 1.7.1 和 Swift 1.2
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell?
对象?["bax"]作为?细绳
对象?["abc"] 作为! PF文件? -> 但是我的图像现在没有显示...仍在尝试解决它。
PFUser.CurrentUser returns 可选值,如果您确定,您的用户已登录并创建了 PFSession,那么试试这个:
var user = PFUser.currentUser()!
如果这不能解决问题,请告诉我。
我刚刚更新:
xcodeVersion 6.3 (6D570)
Swift 1.2 昨晚把我的话搞砸了,显然他们在 Swift 或 Parse 中做了一些更改。
我很困惑,我只是不知道如何解决这个问题...需要帮助。如果其他人遇到过相同的情况并已修复,请帮助我。
import UIKit
import Parse
class ProfileViewController: UIViewController, UITextFieldDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
// MARK: Variables declaration
@IBOutlet weak var uploadPhotoBtn: UIButton!
@IBOutlet weak var profilePhotoImageView: UIImageView!
@IBOutlet var welcomeMessageLabel: UIView!
@IBOutlet weak var greetings: UILabel!
var imagePicker = UIImagePickerController()
var existingImage : UIImage?
var user = PFUser.currentUser()
// The view has loaded this is the function that will be run at first before anything else
override func viewDidLoad() {
super.viewDidLoad()
// MARK: make a circle image
profilePhotoImageView.layer.cornerRadius = profilePhotoImageView.frame.size.width/2
profilePhotoImageView.clipsToBounds = true
//show my status
var mood = self.user["status"] as! String //=> 'AnyObject' is not convertible to 'String'
self.greetings.text? = ( "\(mood)" )
//get image if existing
self.user[ "avatar" ] as? PFFile //=> 'PFFile? is not convertible to 'StringLiteralConvertible'
if let userImageFile = self.user["avatar"] as? PFFile {PFFile? is not convertible to 'StringLiteralConvertible'
userImageFile.getDataInBackgroundWithBlock({ (imageData:NSData!, error: NSError!) -> Void in
if error == nil {
self.existingImage = UIImage(data: imageData)
self.profilePhotoImageView.image = self.existingImage
}else {
let alert = UIAlertView(title: "Oops!", message: "Unable to get your profile photo", delegate: self, cancelButtonTitle: "Ok!")
alert.show()
}
})
}
通过反复试验.. 这对我有用 Parse 1.7.1 和 Swift 1.2
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell?
对象?["bax"]作为?细绳 对象?["abc"] 作为! PF文件? -> 但是我的图像现在没有显示...仍在尝试解决它。
PFUser.CurrentUser returns 可选值,如果您确定,您的用户已登录并创建了 PFSession,那么试试这个:
var user = PFUser.currentUser()!
如果这不能解决问题,请告诉我。