2016-02-19 21 views
0

嗨,我絕對是Swift和Xcode工具的初學者。我試圖通過從Xcode 7+引入的UI測試包來測試應用程序。我想將我的硬編碼數據從腳本遷移到cvs文件。請幫忙。將CSV文件傳遞給用於UI自動化測試的Swift 2文件

目前我已經創建了一個類csvScanner但它示出了變元標籤(contentsOfFile:,錯誤:,編碼)下面

進口基金會

類CSVScanner {

class func debug(string:String){ 

    print("CSVScanner: \(string)") 
} 

class func runFunctionOnRowsFromFile(theColumnNames:Array<String>, withFileName theFileName:String, withFunction theFunction:(Dictionary<String, String>)->()) { 

    if let strBundle = NSBundle.mainBundle().pathForResource(theFileName, ofType: "csv") { 

     var encodingError:NSError? = nil 

     if let fileObject = NSString(contentsOfFile: strBundle, encoding: NSUTF8StringEncoding, error: &encodingError){ 

      var fileObjectCleaned = fileObject.stringByReplacingOccurrencesOfString("\r", withString: "\n") 

      fileObjectCleaned = fileObjectCleaned.stringByReplacingOccurrencesOfString("\n\n", withString: "\n") 

      let objectArray = fileObjectCleaned.componentsSeparatedByString("\n") 

      for anObjectRow in objectArray { 

       let objectColumns = anObjectRow.componentsSeparatedByString(",") 

       var aDictionaryEntry = Dictionary<String, String>() 

       var columnIndex = 0 

       for anObjectColumn in objectColumns { 

        aDictionaryEntry[theColumnNames[columnIndex]] = anObjectColumn.stringByReplacingOccurrencesOfString("\"", withString: "", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil) 

        columnIndex++ 
       } 

       if aDictionaryEntry.count>1{ 
        theFunction(aDictionaryEntry) 
       }else{ 

        CSVScanner.debug("No data extracted from row: \(anObjectRow) -> \(objectColumns)") 
       } 
      } 
     }else{ 
      CSVScanner.debug("Unable to load csv file from path: \(strBundle)") 

      if let errorString = encodingError?.description { 

       CSVScanner.debug("Received encoding error: \(errorString)") 
      } 
     } 
    }else{ 
     CSVScanner.debug("Unable to get path to csv file: \(theFileName).csv") 
    } 
} 

在代碼錯誤}

在此先感謝

+0

格式化的一個小一點需要 –

回答

0

如果您使用的是Xcode 7+,那麼您也正在使用Swift 2.不是將錯誤指針傳遞給該方法,而是需要使用try

方法簽名已更改爲convenience init(contentsOfFile path: String, encoding enc: UInt) throws

(注:沒有error:

+0

我仍然得到的格式錯誤,你可以請張貼上面的類,將有很大的幫助的工作版本。 –

相關問題