我有一个自定义类,如:
class Tender: NSObject {
public var code = ""
public var name = ""
}
方法返回Tender类型的数组。从这个数组,我想准备一个只包含名称的数组。 例如,
public func fetchTenderArray() -> [Tender] {
var tenderArray = [Tender]()
let tender1 = Tender()
tender1.code = "t1"
tender1.name = "tenderName1"
let tender2 = Tender()
tender2.code = "t2"
tender2.name = "tenderName2"
tenderArray.append(tender1)
tenderArray.append(tender2)
return tenderArray
}
现在,我有一个使用此招标的方法。我需要形成一个名为[Tender]的数组。
public func formTenderNamesArray() -> [String] {
let tenderArray = fetchTenderArray()
var tenderNames = [String]()
for tender in tenderArray {
tenderNames.append(tender.name)
}
return tenderNames // returns ["tenderName1","tenderName2"]
}
是否有使用swift3准备该字符串数组的简短方法?
答案 0 :(得分:1)
尝试使用地图功能
它应该是这样的。
let tenderArray = fetchTenderArray()
let tenderNames = tenderArray.map {$0.name}
有关详细信息,请参阅此链接。
https://useyourloaf.com/blog/swift-guide-to-map-filter-reduce/
答案 1 :(得分:0)
//试试这个
public func formTenderNamesArray() -> [String] {
let tenderArray = fetchTenderArray()
var tenderNames = (tenderArray as! NSArray).value(forKey: "name") as! [String]
return tenderNames
}