Swift 如何在函数字段中使用父级?
我有以下代码(MenuItem用于SwiftUI汉堡菜单,我在循环中使用MenuItem数组): 我需要在函数字段“action”中使用字段“index”、“imagename”和“title”。我怎么做 注意:对不起,我的英语不好)这里有一个可能的解决方案(用Xcode 11.2测试)Swift 如何在函数字段中使用父级?,swift,function,class,field,swiftui,Swift,Function,Class,Field,Swiftui,我有以下代码(MenuItem用于SwiftUI汉堡菜单,我在循环中使用MenuItem数组): 我需要在函数字段“action”中使用字段“index”、“imagename”和“title”。我怎么做 注意:对不起,我的英语不好)这里有一个可能的解决方案(用Xcode 11.2测试) import Foundation public class MenuItem { var title: String var imagename: String var index:
import Foundation
public class MenuItem
{
var title: String
var imagename: String
var index: Int
var action: () -> ()
init(title: String, index: Int, action: @escaping () -> ())
{
self.title = title
self.index = index
self.action = action
self.imagename = ""
}
convenience init(title: String, image: String, index: Int, action: @escaping () -> ())
{
self.init(title: title, index: index, action: action)
self.imagename = image
}
func getTitle() -> String
{
return self.title
}
}
//need in output "ItemTitle: Title 1"
var menuitems = [
MenuItem(title: "Title 1", index: 0, action: {
print("ItemTitle: \(menuitems[self.index])")//i can't compile it
}),
MenuItem(title: "Title 2", index: 1, action: {
print("ItemTitle: \(MenuItem.self.title)")//i can't compile it!
}),
MenuItem(title: "Title 3", index: 2, action: {
print("ItemTitle: \(self.getTitle())")//i can't compile it!
})]
public class MenuItem
{
var title: String
var imagename: String
var index: Int
var action: (MenuItem) -> ()
init(title: String, index: Int, action: @escaping (MenuItem) -> ())
{
self.title = title
self.index = index
self.action = action
self.imagename = ""
}
convenience init(title: String, image: String, index: Int, action: @escaping (MenuItem) -> ())
{
self.init(title: title, index: index, action: action)
self.imagename = image
}
func getTitle() -> String
{
return self.title
}
}
//need in output "ItemTitle: Title 1"
var menuitems = [
MenuItem(title: "Title 1", index: 0, action: { item in
print("ItemTitle: \(item.index)")//i can't compile it
}),
MenuItem(title: "Title 2", index: 1, action: { item in
print("ItemTitle: \(item.index)")//i can't compile it!
}),
MenuItem(title: "Title 3", index: 2, action: { item in
print("ItemTitle: \(item.getTitle())")//i can't compile it!
})]