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