这段代码在Swift 1.1中运行良好…只是试图找出1.2中的变化使其不兼容:
- @IBAction func load_click(sender: AnyObject) {
- var query = PFQuery(className: "myClass")
- query.getObjectInBackgroundWithId("MPSVivtvJR",block: { (object:PFObject!,error: NSError) -> Void in
- let theName = object["name"] as String
- let theAge = object["age"] as Int?
- println(theName)
- println(theAge)
- })
- }
它给了我错误:无法使用类型'(String,block:(PFObject!,NSError) – > Void)的参数列表调用’GetObjectInBackgroundWithId’
有任何想法吗?谢谢!
现在使用Swift 1.2,你应该更加小心打开选项.因此,在具有PFObject和NSError的闭包内,要么删除感叹号,要么添加问号以使其成为可选项.
然后,更安全地打开您的物体.尝试如下:
- // You can create this in a separate file where you save your models
- struct myUser {
- let name: String?
- let age: Int?
- }
- // Now this in the view controller
- @IBAction func load_click(sender: AnyObject) {
- var query = PFQuery(className: "myClass")
- query.getObjectInBackgroundWithId("MPSVivtvJR",block: {
- (object:PFObject!,error: NSError?) -> Void in
- if let thisName = object["name"] as? String{
- if let thisAge = object["age"] as? Int{
- let user = myUser(name: thisName,age: thisAge)
- println(user)
- }
- }
- })
- }