Ho una classe modello come segue, che si trova in una libreria scritta in Objective-C. Sto consumando questa lezione nel mio rapido progetto. In rapido diventa proprietà di tipo String!
. A volte quella proprietà sarà nulla. Così, sto testando la convalida nil come segue:Swift - Controlla zero di una variabile facoltativa non confezionata
Vendor.h
@interface Vendor: NSObject {
@property (nonatomic, strong) NSString *firstName;
@property (nonatomic, strong) NSString *lastName;
@property (nonatomic, strong) NSString *middleName;
}
Nel mio progetto Swift, sto controllando la convalida pari a zero per la proprietà middleName come di seguito:
if anObject.middleNam != nil { // Here, It throws runtime error: fatal error: Unexpectedly found nil while unwrapping an Optional value
}
mi lancia un seguito errore di runtime:
fatal error: unexpectedly found nil while unwrapping an Optional value
Se le caratteristiche di Objective-C esposti in s wift come String?
poi mi avrebbe usato il seguente:
if let middleName = anObject.middleName {
}
Come dovrei verificare la variabile facoltativa da scartare.
Grazie in anticipo.
È possibile utilizzare 'Se let' con gli optionals implicitamente non aperti - anche se il controllo'! = nil' dovrebbe funzionare erly con 'middleName', come viene definito' anObject'? – Hamish