我试图在数组中查找项目的索引,该数组包含我创建的名为TreeItem的结构项,但每次尝试调用时都会出现以下错误
Cannot convert value of type 'TreeItem' to expected argument type
'@noescape (TreeItem) throws -> Bool'
你能帮我帮忙吗?
已编辑(已添加代码): 在单独的文件中定义结构: 进口基金会
struct TreeItem {
var Name = String()
var Parent = String()
var HasSons : Bool = false
var Expanded : Bool = false
var Status : Int = 0
init( Parent: String?, Name: String?,HasSons: Bool?, Expanded : Bool?,Status : Int )
{
self.Name = Name!
self.Parent=Parent!
self.HasSons = HasSons!
self.Expanded = Expanded!
self.Status = Status
}
}
在视图控制器中:
var ExpenseCategoryItems = [TreeItem]()
//Fill array with data
func ToggleDeleteButtonStateFunc(){
var TreeSample : TreeView = SomeData
var x = ExpenseCategoryItems.indexOf(TreeSample)
}
在最后一行代码中,崩溃一直在发生。
答案 0 :(得分:0)
如果您发布代码,我们可以为您提供更好的答案。
没有代码,这里有一个猜测:你可能缺少结构的Equatable
和一个合适的函数来决定两个结构是否相等。
struct TreeItem:Equatable {
var someProperty:String!
}
func ==(lhs: TreeItem, rhs: TreeItem) -> Bool {
return lhs.someProperty == rhs.someProperty
}
根据结构需要调整==
功能。