嗨,我是 swift 和 Xcode 工具的绝对初学者。我正在尝试通过 Xcode 7+ 引入的 UI 测试包来测试应用程序。我想将我的硬编码数据从脚本迁移到 cvs 文件。请帮忙。
目前我已经创建了一个类 csvScanner,但它在下面的代码中显示参数标签(内容文件:,编码:,错误)错误
进口基金会
类 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("nn", 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")
}
}
}
提前致谢
如果您使用的是 Xcode 7+,那么您也在使用 Swift 2。 您需要使用 try
而不是将错误指针传递给该方法。
方法签名已更改为 convenience init(contentsOfFile path: String,
encoding enc: UInt) throws
。
(注:无error:
。