如何解决解析和Swift 1.2问题
现在,使用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)
}
}
})
}
解决方法
这段代码在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’
有任何想法吗?谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。