SWift ??とは
??は中値演算子という
オプショナル型が値を持っていれば、それをラップして代入。
持っていなければ、右辺を代入する。
例
let hoge:Int? hoge = 1 let fuga = hoge ?? 3 print(fuga) =>1
値が入っているので1が出力される
let hoge:Int? hoge = nil let fuga = hoge ?? 3 print(fuga) =>3
値が入っていないので??中値演算子の右辺3が代入されている
実例
override func mapAgent(_ mapAgent: MsMapAgent, showGoogleMap datPerson: DatPerson) { //datPerson.jusho があるならラップしてjushoへ代入 そうでなければ""を入れなさい let jusho = datPerson.jusho ?? "" //urlにはjushoを代入 let url = jusho != "" ? URL(string:"comgooglemaps://?q=\(jusho)¢er=\(datPerson.latitude),\(datPerson.longitude)&zoom=14&views=traffic")! : URL(string:"comgooglemaps://?center=\(datPerson.latitude),\(datPerson.longitude)&zoom=14&views=traffic")! if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) { // UIApplication.shared.openURL(url) UIApplication.shared.open(url, options: [:], completionHandler: {(success) in if (success){ NSLog("success") } }) } else { MsAlert.confirmOk(self, "Cannot open Google Maps") } }