2017-08-02 54 views
0

我有一個自定義類,如:製造陣列從自定義對象屬性

class Tender: NSObject { 
    public var code = "" 
    public var name = "" 
} 

甲方法返回投標類型的陣列。從這個數組中,我想準備一個只包含名字的數組。 實施例,

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 
} 

現在,我有一個使用此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

想過用用於存儲代碼(=鍵)和名稱(=值)一個HashMap或字典的? –

回答

0

//嘗試這

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