我正在尝试将随机值(来自枚举的文件名)传递给文件读取方法的参数。但它会引发错误 OptinalValue:file 。
如何将结构中的随机文件名传递给 getDataFromFIle() 方法参数
读取文件.swift
import Foundation
var content:String!
class readFile
{
//метод для читки файла
func getDataFromFile(name: String , type:String)
{
let pathFile = Bundle.main.path(forResource: name, ofType: type)
//в этом рядке ошибка
let contentString = try! NSString(contentsOfFile: pathFile!, encoding: String.Encoding.utf8.rawValue)
let randomContent = contentString.components(separatedBy: [".","!"]).randomElement()!//.replacingOccurrences(of: "\"", with: "")
content = randomContent
}
}
任务文件.swift
import Foundation
struct TaskName
{
enum LvlOne
{
case taskOneLvlOne
case taskTwoLvlOne
case taskThreeLvlOne
var fileNameLvlOne:String
{
switch self {
case .taskOneLvlOne:
return "taskOneLvlOne"
case .taskTwoLvlOne:
return "taskTwoLvlOne"
case.taskThreeLvlOne:
return "TaskThreeLvlOne"
}
}
}
enum LvlTwo
{
case taskOneLvlTwo
case taskTwoLvlTwo
case taskThreeLvltwo
var fileNameLvlTwo:String
{
switch self {
case .taskOneLvlTwo:
return "taskOneLvlTwo"
case .taskTwoLvlTwo:
return "taskTwoLvlTwo"
case.taskThreeLvltwo:
return "taskThreeLvltwo"
}
}
}
}
ShowContent.swift
func getContent()
{
let contentFile = readFile.init()
conentFile.getDateFromFile(name: TaskName.LvlTwo.allCases.randomElement()!, type: "txt")
let conentFile = content
lebel.text = contentFile!
}
在您的情况下,您可以这样做,例如,通过使用泛型创建方法
然后
enum
使用它会是这样的用法