Objective-CからSwiftへの変換メモ その7
Xcodeに任せてできたコードがヘンテコだったのでメモして置く。
Objective-C
self.aViewController.commentToSendF.stringValue = [NSString stringWithFormat:@"MESSAGES %@ ",self.aViewController.anOpponentF.stringValue];
上記コードをobjc2swiftで変換し、さらにXcodeの修正要求を反映したものが以下。
特にString(describing:hogehoge)を加えないと、”String interpolation produces a debug description for an optional value; did you mean to make this explicit?”と言う黄色の警告が出る。
「文字列の改ざんはOptional値へのデバッグ詳細を作り出します。あえてそうしますか?」と、自力で訳しても意味が分からない。
self.aViewController?.commentToSendF.stringValue = "MESSAGES \(String(describing: self.aViewController?.anOpponentF.stringValue)) "
動作させ見たら、String(describing:hogehoge)のせいではないだろうけど、値にOptional( )がくっついてきた。こっちはサーバーと通信することもあるので、変数を展開した結果がOptional(hogehoge)では困るのだ。
結局、NSStringのformat機能を使って、以下のように書き換えた。以前の方がSwiftっぽいが、背に腹はかえられぬ。致し方ないところである。
self.aViewController?.commentToSendF.stringValue = NSString(format: "MESSAGES %@ ", (self.aViewController?.anOpponentF.stringValue)!) as String
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント