Swift数组类:如何在类的方法中查找索引

时间:2015-01-09 18:07:09

标签: arrays class swift methods indexing

让我们考虑以下代码:

Class AClass : SKNode
{
    func AFunction ()
    {
        // Some code
    }
}

var AnArrayOfAClass[AClass]()

AnArrayOfAClass[x].AFunction

当我调用方法AFunction时,我怎么能在AFunction中知道索引的值(索引是我想要在上面的代码的最后一行中执行的调用示例中的x)?有没有办法避免将其作为AFunction的参数传递?

THX

学家

1 个答案:

答案 0 :(得分:1)

我不确定这是否有效,因为我仍然不确定范围问题,但这会返回AnArrayOfAClass中与对象相同的第一个值的索引调用函数:

class AClass {
    func aFunction() {

        //  This maps AnArrayOfAClass to an array of Bool values depending
        //  on whether or not the value at the index === the object calling the function
        //  and then returns the index of the first true that it encounters:

        if let index = find(anArrayOfAClass.map({ $0 === self }), true) {
            println(index)
        }
    }
}

var anArrayOfAClass = [AClass]()

let aClass = AClass()

anArrayOfAClass += [aClass]

anArrayOfAClass[0].aFunction()   //  If everything worked, this should print "0", 
                                 //  which is the correct index of aClass

我把所有东西都改成了camelCase,我认为这是合适的 - 没有违法行为:)