数组中的错误转换

时间:2015-10-13 14:14:44

标签: ios arrays swift indexof

我试图在数组中查找项目的索引,该数组包含我创建的名为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)
}

在最后一行代码中,崩溃一直在发生。

1 个答案:

答案 0 :(得分:0)

如果您发布代码,我们可以为您提供更好的答案。

没有代码,这里有一个猜测:你可能缺少结构的Equatable和一个合适的函数来决定两个结构是否相等。

struct TreeItem:Equatable {
    var someProperty:String!
}

func ==(lhs: TreeItem, rhs: TreeItem) -> Bool {
    return lhs.someProperty == rhs.someProperty 
}

根据结构需要调整==功能。