在总体方案中,我试图比较用户从tableview中的多个选择,并将它们与我的解析数据库进行比较。所以我的问题是两倍1。我当前的代码是正确的方式吗?和2。如何将值类型Bool转换为参数类型pfobject?
无法将类型“()->bool”的值转换为预期的参数类型“pfobject”
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showResults" {
// Get reference to destination view controller
let destination = segue.destinationViewController as! CollectionViewController
if let selectedItem = tableView.indexPathsForSelectedRows{
for var i = 0; i < selectedItem.count; ++i {
var currentPath = selectedItem[i] as NSIndexPath
var cell = tableView.cellForRowAtIndexPath(currentPath)
if let cell = cell {
//add major(s) selected to data variable in collectionview as type text(String)
destination.data.append(cell.textLabel!.text!)
}
让imagesQuery=PFQuery(classname:“CollegeImages”)imagesQuery.SelectKeys([“name”])imagesQuery.FindObjectsInbackgroundWithBlock({(objects:[PFObject]?,error:nserror?)in if error==nil{if let returdObject=objects{//objects array is not nil//遍历数组以获取returdObjects中对象的每个对象{print(object[“
}
})
let majorSelected:String = (cell?.textLabel!.text!)!
let query = PFQuery(className:"CollegeMajors")
query.selectKeys(["Major"])
query.findObjectsInBackgroundWithBlock ({
(objects: [PFObject]?, error: NSError?) in
if error == nil {
// The find succeeded.
print("Successfully retrieved \(objects!.count) majors.", terminator: "")
// Do something with the found objects
if let returnedobjects = objects {
if returnedobjects.contains ({($0["Major"] as? String)! == majorSelected}) && query.selectKeys(["College Name"]) == imagesQuery.selectKeys(["name"]) {
print("your in!") // transition to the new screen
}
else {
print("your out.") // do whatever
}
}
} else {
// Log details of the failure
print("Error: \(error!) \(error!.userInfo)", terminator: "")
}
})
}
}
}
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
//Keep track of which major(s) the user selected
let path = tableView.indexPathForSelectedRow!
if let cell = tableView.cellForRowAtIndexPath(indexPath){
//Trigger the segue to go to the collection view
self.performSegueWithIdentifier("showResults", sender: self)
}
}
你感兴趣的领域有几个问题。
首先,将闭包{[“returdobjects”]作为?String==path}
传递给contains(_:)
方法,但是闭包不接受任何参数。您需要传递一个带一个参数的闭包,其中它的类型与数组的元素相同。
其次,在闭包中,[“returdobjects”]
是一个数组,那么,[“returdobjects”]作为?String
总是失败并生成nil
。您需要将这一部分更改为产生字符串
的有意义的表达式,您可能需要使用传递给这个闭包的PFObject
实例。
let path = tableView.indexPathForSelectedRow!
在let path=...
下面添加一行
let majorSelected: String = (Some expression to retrieve "major" from the `path`)
将包含contains
的行中的闭包更改为:
if returnedobjects.contains ({$0["Major"] as? String == majorSelected }) {
我正在尝试根据我在线找到的教程创建NSURLSession任务(https://www.raywenderlich.com/85528/user-accounts-ios-ruby-rails-swift#next_section),并且我收到以下错误: 无法转换类型为(NSData!,NSURLResponse!,NSError!) - 在这段代码中: 问题所属的职能部门可在此处找到 完整的代码
我收到此错误,并且是 Swift 的新手。我想取数组的最后 5 个点 无法将“ArraySlice”类型的值转换为预期的参数类型“[CGPoint]”
我不知道如何将类型的值转换为预期的参数类型,用于在以下代码中: 如何为编写
我正在保存所有数据,代码写在单独的类中。它显示了一个错误,即无法将类型为“Int”的值转换为预期的参数类型“字符串”。请帮我解决这个问题。 以下是我保存所有数据的类: 这是ViewController.swift文件: 遇到错误: 无法将“Int”类型的值转换为预期的参数类型“String”
我是斯威夫特的新人,现在尽我所能地学习这个。我写了得到参数的函数:数字和函数,它们与这个数字一起工作: 但是编译给出错误。当我试图改变论点时,比如
问题内容: 我通过以下方式添加: 现在,我在中的关键字上收到以下错误消息: 我在所有其他功能中都使用了该功能,但从未遇到此错误 问题答案: 更改为。 我不确定编译器到底在想什么(或者它的疯狂错误消息来自何处),但是我的猜测是: 在Swift中,必须先初始化变量,然后才能使用。造成这种情况的一个原因是,编译器无法验证不会尝试调用其获得的所有内容,或执行其他操作,例如访问将在之后初始化的其他变量,这取