我想學習Swift - 目前的任務是從一個包含字符串的對象數組中爲Mac應用程序製作一個簡單的菜單。現在的問題是如何傳遞選擇器,它在數組中是一個字符串,但在代碼中是一個函數。我可以在數組中使用一個字符串作爲選擇器嗎?
類是
class menuArrayObject
{
var title: String = ""
var subMenuTitles: [String] = []
var subMenuSelectors: [String] = []
}
這是我的代碼
for index2 in 0...counter2 - 1
{
let subMenuTitle = arrayObject.subMenuTitles[index2]
let subMenuSelector = NSSelectorFromString(arrayObject.subMenuSelectors[index2])
let subMenu = NSMenuItem(title: subMenuTitle, action: #selector(subMenuSelector(_:)),keyEquivalent: "")
indexMenu.addItem(subMenu)
}
錯誤消息(在讓子菜單=)是: 「#selector的參數可以不是指一個屬性」
這是可行的嗎?這實際上是可取的嗎?有沒有更好的辦法?
在此先感謝強調文本
看看這個SO帖子:HTTP: //sackoverflow.com/questions/30286143/swift-call-class-function-or-property-by-string – penatheboss