可可的指数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可可的指数相关的知识,希望对你有一定的参考价值。

我习惯制作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])
    }
}
答案

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

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

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

以上是关于可可的指数的主要内容,如果未能解决你的问题,请参考以下文章

iOS:可可豆荚:代码编译问题

尝试在 Swift 项目中使用 Objective C 可可豆荚,桥接文件编译为 Swift 代码

使用 AFNetworking、ios 上传图片

在多个应用程序中使用可可触摸框架项目

在可可中拖动一个矩形

BZOJ 1415 NOI2005 聪聪和可可