将Swift 1更新为Swift 2.0之后,我遇到了一个问题。
我在此代码的第一行收到以下错误:
无法将方法标记为@objc,因为无法在Objective-C中表示参数的类型
@objc func personsToFirstStep(persons: [Person]) {
for person in persons {
if !self.persons.contains(person) && person.id != userID {
self.persons.append(person)
}
}
collectionView.reloadData()
collectionViewPlaceholder.hidden = true
collectionView.hidden = false
collectionGradientView.hidden = false
}
这个Person类:
class Person: Hashable {
var intID: Int = 0
var id: String = ""
var name: String = ""
var type: String = ""
var hashValue: Int {
return self.intID
}
init(id: String, name: String, type: String) {
self.id = id
self.intID = Int(id)!
self.name = name
self.type = type
}
}
func ==(lhs: Person, rhs: Person) -> Bool {
return lhs.intID == rhs.intID
}
您已经很好地解释了问题所在:
class Person: Hashable {
人不是NSObject。但是Objective-C只能看到NSObject派生的类类型。因此,您的Person类型对Objective-
C不可见。但是您的@objc func
声明是针对需要一个Person数组的函数的-我们刚刚说过,Person-
C不可见Person。因此,您的@objc func
声明是非法的。无法向Objective-C显示此功能,因为无法向其显示其参数。
您需要更改您的类声明才能像这样开始:
class Person: NSObject {
…然后您可能当然必须在类的实现中进行任何必要的进一步调整。但是,这种更改会使您的@objc func
声明合法。(NSObject 是可
哈希的,因此进行这种修改所需的工作量可能不是很大。)
问题内容: 听起来很荒谬,但是我无法修复这段代码: 无论我如何写闭包,我总是会遇到此错误: 无法使用类型为’ ‘ 的参数列表调用’filter ‘ 定义如下: 并且是Swift类(不继承自NSObject) 我在许多其他地方都使用了几乎相同的产品,而没有出现问题。有什么建议? 问题答案: 如果您不符合以下条件,则会收到该错误:
我刚刚升级到spring-boot 2.1.3.release,由于这个新的类/方法,我不能拥有多个StreamsBuilderFactoryBean(只需要一个): 我得到这个错误: 我在想,也许使构造的bean成为一个主要的bean。任何帮助都超过感激! 编辑:我通过删除和来规避这个问题。因此,不起作用。
Driver.FindElement(By.CSSSelector(“[value='fomen']”))。Click(); driver.findElement(by.xpath(“//input[contains(@value,'male']”)).click(); Driver.FindElement(By.CSSSelector(“input[type='radio'][value='ma
问题总结:我想传递一个带有类型参数(如
问题内容: 当我编写代码以使用indexOf从数组中查找项目时,它向我显示了上述错误。这是我的代码:- 问题答案: 为了使用的,必须采取Equatable协议。只有采用此协议,列表才能将一个项目与其他项目进行比较以找到所需的索引
我正在尝试从MySQL数据库中的表用户获取数据。使用下面的代码,我可以登录到数据库(不返回错误),但当我试图从表中读取数据时,它会显示警告(在这种情况下,我只是选择行来检查代码是否有效)。代码如下: 通过上面的代码,我得到以下结果: 警告:mysql_query()[function.mysql query]:在/home/adamjudk/public_html/airlinesimulator