可可的指数

问题描述 投票:0回答:1

我习惯制作iPhone应用程序,但现在我需要制作一款Mac应用程序。因此我必须切换到Cocoa框架。

在Cocoa中是否有类似于array.index(of :)的东西?

iOS示例:

let string = "Hello.World"
let needle: Character = "."
if let idx = string.characters.index(of: needle) {
    let pos = string.characters.distance(from: string.startIndex, to: idx)
    print("Found \(needle) at position \(pos)")
}
else {
    print("Not found")
}

我遇到问题的实际代码在这里:

func checkBoxTapped(_ sender: NSButton) {
    if (sender.state == 1) {
        self.selectedReferrals.append(self.referralApplicationList[sender.tag])
    }
    if (sender.state == 0) {
        // Remove
        // self.referralApplicationList[sender.tag]
        // let foofoo = self.referralApplicationList.indexOf(self.referralApplicationList[sender.tag])
    }
}
ios swift macos cocoa
1个回答
0
投票

你的问题与Cocoa或macOS完全无关。你真正要问的是如何在Swift数组上获得index(of:)函数,答案就是数组中的元素需要是Equatable

在你的iOS示例中,charactersString.CharacterView的一个实例,它明确地具有index(of:)函数。

在您的Mac示例中,您没有提供足够的信息,selectedReferrals变量可能是某些Array类型的Referral;例如,[Referral]。因为有类似的index(of:)你的Referral类型需要实现Equatable协议。否则你需要使用像index(where:)这样的东西来找到你想要的那个。

© www.soinside.com 2019 - 2024. All rights reserved.