我相信这很容易做到,但是我对此并不了解,我仍然是个笨蛋(我搜索了几天,仍然找不到答案或类似的问题,最后我决定问)
我有一个名为(基本上是数据库)的类:QuestionBank001,QuestionBank002等。
因此,当我选择一个问题库并转到另一个ViewController时,我希望能够创建一个特定的实例。 但是我必须在UIViewController下创建此变量,因为有一些功能需要它:
class test1: UIViewController {
var questions = QuestionBank001()
所以我的问题是,我不知道如何正确添加if / switch语句(或get / set?)。或如何启动它。 如果我可以创建一个空变量(不带类型),则可以使用viewDidLoad()部分,并在其中创建switch语句,但是我不知道该怎么做。
答案 0 :(得分:0)
您可以在 switch 块中使用 is 。请参阅Swift编程语言中的“对Any和AnyObject进行类型转换”(尽管当然不限于Any)。他们有一个广泛的例子:
for thing in things { switch thing { case 0 as Int: println("zero as an Int") case 0 as Double: println("zero as a Double") case let someInt as Int: println("an integer value of \(someInt)") case let someDouble as Double where someDouble > 0: println("a positive double value of \(someDouble)") // here it comes: case is Double: println("some other double value that I don't want to print") case let someString as String: println("a string value of \"\(someString)\"") case let (x, y) as (Double, Double): println("an (x, y) point at \(x), \(y)") case let movie as Movie: println("a movie called '\(movie.name)', dir. \(movie.director)") default: println("something else") } }
答案 1 :(得分:0)
您应该具有从中继承所有问题库的基本类型或协议。如果问题库类似于问题数组,那么您的情况最简单,只需将数组设置为空即可:
var questions = QuestionBank001()
否则,可能有解决方案:
lazy var questions: QuestionBank = {
//code to load the first question bank here
}()
var questions: QuestionBank?
var questions = QuestionBank.makeEmpty()