Как реализовать абстрактный класс в F#?

Вы можете попробовать это, если это корень

if let roo = (UIApplication.shared.delegate as! AppDelegate).window?.rootViewController { 
    print(roo.view.backgroundColor)
    if roo.view.backgroundColor == .white {
      print("Yes")
    }
    else {
      print("No")
    }
}

, если нет. Вы также можете создать делегата, такого как

class ChildVC: UIViewController {
   weak var delegate:ParentVC?
}

и в viewDidLoad родителя [117 ]

if let fir = self.children.first as? ChildVC {
    fir.delegate = self 
}

После этого вы можете получить родительский цвет с помощью

delegate?.view.backgroundColor
10
задан abatishchev 12 March 2014 в 07:53
поделиться

1 ответ

Вот некоторый пример кода

type IBaz =
    abstract member Baz : int -> int

[<AbstractClass>]
type MyAbsClass() =
    // abstract
    abstract member Foo : int -> int
    // virtual (abstract with default value)
    abstract member Bar : string -> int
    default this.Bar s = s.Length 
    // concrete
    member this.Qux x = x + 1

    // a way to implement an interface
    abstract member Baz: int -> int
    interface IBaz with
        member this.Baz x = this.Baz x

type MySubClass(z : int) =
    inherit MyAbsClass()
    override this.Foo x = x + 2
    override this.Bar s = (base.Bar s) - 1
    override this.Baz x = x + 100
    member this.Z = z
    new () = MySubClass(0)

let c = new MySubClass(42)    
printfn "%d %d %d %d %d" c.Z (c.Foo 40) (c.Bar "two") (c.Qux 41) (c.Baz 42000)
14
ответ дан 3 December 2019 в 23:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: