/ / Gyors, implicit átalakítás típus - gyors, swift2

Gyors, implicit átalakítás - gyors, swift2

Mondjuk, hogy kijelentettem UIViewController mint az én osztályom tulajdonát. Egyes esetekben implicit módon hozzárendelhetjük az UINavigationControllert ehhez a tulajdonsághoz.

UIViewController *someNavigationController

Az Objective-C programban egyszerűen rendelhető

UIViewController *vc = self.someNavigationController;

if (vc)
{
//then do something
}

Ahogy megértettem Swiftben, valami ilyesmit kell tennem, ha én self.centerViewController bejelentett UIViewController. Jobb

let nvc = self.centerViewController as! UINavigationController

Hogy tudom ellenőrizni

if nvc != nil

Azt mondja, hogy nem lehet nulla.

válaszok:

2 a válasz № 1

as! UINavigationController azt jelenti, hogy ez egy kényszermunka: kicsomagolt, már nem választható, ezért már nem lehet nulla - és ha igen voltak nulla (vagy nem leolvasható), az alkalmazás összeomlott volna.

Az opcionális kötelező érvényű kötést használhatja:

if let nvc = self.centerViewController as? UINavigationController {
// here, nvc is not nil and is a UINavigationController, you can use it
} else {
// here, either self.centerViewController is nil or we can"t cast it as a UINavigationController
}

3 a válasz № 2

az alábbiakat is ellenőrizheti: -

if self.centerViewController is UINavigationController
{
// here self.centerViewController must be an instance of UINavigationController and not nil
let nvc = self.centerViewController as! UINavigationController
}
else {
// here May be nil or may be an instance is of an other class
}

Kapcsolódó kérdések


Hozzászólások (0)

Hozzászólni