당신은 채워진 Data
개체를 얻을 수있는 다음과 같은 기능을 사용할 수 있습니다 추가 할 함수 서명에서 볼 수 있듯이
func getDesiredData(formattedString: String, dateFormat: String, separator: String) -> Data? {
let array = formattedString.components(separatedBy: separator)
//print(array.count)
if array.count < 6 {
// something went wrong seprating the formatted string
return nil
}
guard let d1 = Double(array[1]), let d2 = Double(array[2]), let d3 = Double(array[3]), let d4 = Double(array[4]), let i1 = Int(array[5]) else {
// something went wrong when converting string to doubles/int
return nil
}
var formatter = DateFormatter()
formatter.dateFormat = dateFormat
let date = formatter.date(from: array[0])
return Data(DT: date, D1: d1, D2: d2, D3: d3, D4: d4, I1: i1)
}
, 당신은 자유를 원하는 :
formattedString
에 대한 예 : "yyyyMMdd; % f; % f; % f; % f; % d".
dateFormat
예 : "yyyyMMdd"
separator
예 : ","또는 ";"
출력 :
// happy case ";":
let test1 = getDesiredData(formattedString: "20170924;1.1;2.2;3.3;4.4;100", dateFormat: "yyyyMMdd", separator: ";")
dump(test1)
// happy case ",":
let test2 = getDesiredData(formattedString: "20170924,1.1,2.2,3.3,4.4,100", dateFormat: "yyyyMMdd", separator: ",")
dump(test2)
// wrong format:
let test3 = getDesiredData(formattedString: "wrong;format;goes;here", dateFormat: "yyyyMMdd", separator: ";")
dump(test3) // nil
// wrong separator:
let test4 = getDesiredData(formattedString: "20170924;1.1;2.2;3.3;4.4;100", dateFormat: "yyyyMMdd", separator: "!")
dump(test4) // nil
당신은 예상 된 결과의 예를 추가 할 수 있습니다, 더 명확하게하려면? –
데이터 [0] .DT == 2017-09-24 00:00:00 UTC 데이터 [0] .D1 == 1.1 ... 및 데이터 [0] .I1 == 100 – Anton