Swift2 将CSV文件传递到Swift 2文件以进行UI自动化测试

Swift2 将CSV文件传递到Swift 2文件以进行UI自动化测试,swift2,Swift2,嗨,我是swift和Xcode工具的绝对初学者。我试图通过从Xcode 7+引入的UI测试包来测试应用程序。我想将硬编码数据从脚本迁移到cvs文件。请帮忙 目前,我已经创建了一个类csvScanner,但它在下面的代码中显示参数标签(contentsOfFile:,encoding:,error)错误 进口基金会 CSVScanner类{ class func debug(string:String){ print("CSVScanner: \(string)") } class f

嗨,我是swift和Xcode工具的绝对初学者。我试图通过从Xcode 7+引入的UI测试包来测试应用程序。我想将硬编码数据从脚本迁移到cvs文件。请帮忙

目前,我已经创建了一个类csvScanner,但它在下面的代码中显示参数标签(contentsOfFile:,encoding:,error)错误

进口基金会

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")
    }
}
类函数调试(字符串:字符串){
打印(“CSVScanner:\(字符串)”)
}
类func runfunctionRowsfromfile(列名:数组,文件名为filename:String,函数名为function:(Dictionary)->()){
如果让strBundle=NSBundle.mainBundle().pathForResource(文件名,类型:“csv”){
变量编码错误:n错误?=nil
如果let fileObject=NSString(contentsOfFile:strBundle,编码:NSUTF8StringEncoding,错误:&encodingError){
var fileObjectCleaned=fileObject.stringByReplacingOccurrencesOfString(“\r”,带字符串“\n”)
fileObjectCleaned=fileObjectCleaned.StringByReplacingOfString(“\n\n”,带字符串“\n”)
让objectArray=fileObjectCleaned.componentsSeparatedByString(“\n”)
对于objectArray中的anObjectRow{
让objectColumns=anObjectRow.componentsSeparatedByString(“,”)
var aDictionaryEntry=字典()
var columnIndex=0
对于objectColumns中的anObjectColumn{
aDictionaryEntry[theColumnNames[columnIndex]=anObjectColumn.StringByReplacingOfString(“\”,带字符串:“”,选项:NSStringCompareOptions.CaseInsensitiveSearch,范围:nil)
列索引++
}
如果aDictionaryEntry.count>1{
函数(adictionary条目)
}否则{
调试(“没有从以下行提取数据:\(anObjectRow)->\(objectColumns)”)
}
}
}否则{
CSVScanner.debug(“无法从路径\(strBundle)加载csv文件”)
如果let errorString=编码错误?。说明{
调试(“收到的编码错误:\(errorString)”)
}
}
}否则{
CSVScanner.debug(“无法获取csv文件的路径:\(theFileName.csv)”
}
}
}


提前感谢

如果您使用的是Xcode 7+,那么您也在使用Swift 2。您需要使用
try
,而不是向该方法传递错误指针

方法签名已更改为便利初始化(contentsOfFile path:String, 编码enc:UInt)抛出


(注意:无
错误:

需要重新格式化一点。我仍然在格式化方面遇到错误。你可以发布上述课程的工作版本吗?这将非常有帮助。