Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 从自定义对象属性创建数组_Arrays_String_Dictionary_Swift3_Key - Fatal编程技术网

Arrays 从自定义对象属性创建数组

Arrays 从自定义对象属性创建数组,arrays,string,dictionary,swift3,key,Arrays,String,Dictionary,Swift3,Key,我有一个自定义类,如: class Tender: NSObject { public var code = "" public var name = "" } 方法返回投标类型的数组。从这个数组中,我想准备一个只包含名称的数组。 例如 现在,我有了一个使用这个数组的方法。我需要用[Tender]的名称组成一个数组 public func formTenderNamesArray() -> [String] { let tenderArray = f

我有一个自定义类,如:

 class Tender: NSObject {
     public var code = ""
     public var name = ""
 }
方法返回投标类型的数组。从这个数组中,我想准备一个只包含名称的数组。 例如

现在,我有了一个使用这个数组的方法。我需要用[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准备字符串数组?

尝试使用映射功能

应该是这样的

let tenderArray = fetchTenderArray()
let tenderNames = tenderArray.map {$0.name}
有关更多信息,请参阅此链接

//试试这个

public func formTenderNamesArray() -> [String] {
    let tenderArray = fetchTenderArray()
    var tenderNames = (tenderArray as! NSArray).value(forKey: "name") as! [String]
    return tenderNames
}

有没有想过使用hashmap或字典来存储代码(=键)和名称(=值)?
public func formTenderNamesArray() -> [String] {
    let tenderArray = fetchTenderArray()
    var tenderNames = (tenderArray as! NSArray).value(forKey: "name") as! [String]
    return tenderNames
}