我正在尝试将ViewController作为参数传递,但我一直收到此错误。我不确定为什么会发生错误。任何帮助表示赞赏。
class Major: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource{
let initial = json.finddetailclass(self as ViewController, predicate: predicate)
}
func finddetailclass(viewclass: Major, @noescape predicate: JSON -> Bool) -> JSON? {
if predicate(self) {
return self
}
else {
if let subJSON = (dictionary?.map { $0.1 } ?? array) {
for json in subJSON {
if let foundJSON = json.findmultiple(viewclass as UIViewController //this is where I get the error, predicate: predicate) {
let shorten = foundJSON["html"].stringValue
print(shorten)
}
}
}
}
return nil
}
答案 0 :(得分:0)
你应该贬低自我。尝试:
json.findmultiple(viewclass as UIViewController,predicate:predicate)
有关答案 1 :(得分:0)
如果您想将ViewController作为参数传递,请使用此类型作为其参数类型[AnyObject]。
AnyObject喜欢Objective-C中的id。你可以理解它是指针的任何类型的对象。
func finddetailclass(viewclass:AnyObject,@ noescape predicate:JSON - > Bool) - > JSON? ......
然后,当您使用此对象时,可以将视图类转换为实际类型的对象。