9

Swift で Xcode 7 を使用して自動化スイートを構築しています。

私のアプリは、次のアラート ビューで読み込まれます。

アプリの使用中に位置情報へのアクセスを「光アラーム」に許可しますか?

UI Testing で記録してこのアラートをクリックすると、次のコードが表示されます: app.alerts["アプリの使用中に \U201cLight Alarm\U201c が現在地にアクセスできるようにしますか?"]

注: 引用符は \U201c に置き換えられました

ただし、コンパイルしようとすると、次のエラーが表示されます:「無効なエスケープ シーケンスのリテラル」

これを回避する方法を知っている人はいますか?

4

2 に答える 2

14

これは、UI の記録中にコードを生成するときの Xcode のバグのようです。Swift は\u{NNNN}文字列リテラルでエスケープ シーケンスを使用するため、

app.alerts["Allow \u{201c}Light Alarm\u{201c} ..."]

正しいか、単に

app.alerts["Allow “Light Alarm“ ..."]

(実際には"Allow “Light Alarm” ..."、2 番目の引用符が U+201D = RIGHT DOUBLE QUOTATION MARK の場所にあるはずです:)

Objective-C の UI 記録コードに関する同様の問題が 、UI テストにおける不完全なユニバーサル キャラクター名で報告されました。

回避策はわかりません。現時点で唯一できることは、記録後にコードを修正することです (そして、Apple にバグ レポートを送信しました)。

于 2015-09-22T09:41:52.107 に答える
0

Xcode 7.3をインストールすると、この問題が修正されました

于 2016-03-29T19:26:09.423 に答える