2016-04-20 1 views
-2

У меня есть массив словаря, как это:создать файл CSV из массива словарей в быстрой

Создаются словари:

let dateOfSurvey = String(NSDate()) 
let idOfSurvey = General.codeClasse + "-" + String(General.codePersonnel) 
let dictionaryResults = ["dateOfSurvey": dateOfSurvey, 
         "ID": idOfSurvey, 
         "themaQuestionStep": questionResultThema, 
         "actionQuestionStep": questionResultAction, 
         "F01D1a": questionResult01, 
         "F02D2c": questionResult02, 
         "F03D3a": questionResult03, 
         "F04D4a": questionResult04, 
         "F05D1b": questionResult05, 
         "F06D2b": questionResult06, 
         "F07D3b": questionResult07, 
         "F08D4b": questionResult08, 
         "F09D1c": questionResult09, 
         "F10D2a": questionResult10, 
         "F11D3c": questionResult11, 
         "F12D4c": questionResult12] 

затем добавляется в массив:

 arrayOfResults.addObject(dictionaryResults) 

Я хотел бы отправить/экспортировать результат по почте и подумать, что файл CSV будет хорошим способом.

Есть ли простой способ создать этот csv из массива словарей в swift?

ответ

1

После не решений для массива Словаре я должен изменить данные в списке массивов dictionaryResults стать arrayOfSurvey

let dateOfSurvey = String(NSDate()) 
let idOfSurvey = General.codeClasse + "-" + String(General.codePersonnel) 
let arrayOfSurvey = [dateOfSurvey , idOfSurvey , questionResultThema , questionResultAction, questionResult01, questionResult02, questionResult03, questionResult04, questionResult05, questionResult06, questionResult07, questionResult08, questionResult09, questionResult10, questionResult11, questionResult12] 

я теряю ключ-значение, но теперь быть в состоянии поставить данные в cvs

arrayOfResults.addObject(arrayOfSurvey) 
let count = arrayOfResults.count 
General.cvs = "dateOfSurvey" + "," + "ID" + "," + "themaQuestionStep" + "," + "actionQuestionStep" + "," + "F01D1a" + "," + "F02D2c" + "," + "F03D3a" + "," + "F04D4a" + "," + "F05D1b" + "," + "F06D2b" + "," + "F07D3b" + "," + "F08D4b" + "," + "F09D1c" + "," + "F10D2a" + "," + "F11D3c" + "," + "F12D4c" 
for i in 0...count { 
    let arrayAtIndex = arrayOfResults.objectAtIndex(i) 
    let stringRepresentation = arrayAtIndex.componentsJoinedByString(",") 
    General.cvs += "\n" + stringRepresentation 
       } 
let fileData = General.cvs.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)