[解決済み】Xcode 8 / Swift 3:「UIViewController?型の式は未使用です」という警告が表示される
質問
以下の関数がありますが、以前はきれいにコンパイルできたのに、Xcode 8では警告が発生します。
func exitViewController()
{
navigationController?.popViewController(animated: true)
}
"型 "UIViewController?" の式は未使用です"。
なぜこのように表示されるのでしょうか、また、これを取り除く方法はありますか?
コードは期待通りに実行されます。
解決方法は?
TL;DR
popViewController(animated:)
リターン
UIViewController?
という警告が表示されます。解決策は、この値をアンダースコアに代入することです。
_ = navigationController?.popViewController(animated: true)
Swift 3 変更点
Swift 3以前は、すべてのメソッドがデフォルトで"discardable result"を持っていました。メソッドが返すものを捕捉しなかったときに、警告は発生しませんでした。
コンパイラに結果をキャプチャするよう指示するためには、コンパイラに
@warn_unused_result
をメソッド宣言の前に記述します。これは、フォームが変更可能なメソッドに使われるでしょう(ex.
sort
と
sortInPlace
). あなたは
@warn_unused_result(mutable_variant="mutableMethodHere")
をコンパイラに伝える。
しかし、Swift 3では、動作が反転しています。すべてのメソッドは、戻り値がキャプチャされていないことを警告するようになりました。警告が必要ないことをコンパイラに伝えたい場合は、メソッドに
@discardableResult
をメソッド宣言の前に記述します。
戻り値を使いたくない場合は 明示的に をアンダースコアに代入してコンパイラに伝えてください。
_ = someMethodThatReturnsSomething()
Swift 3にこれを追加する動機。
-
起こりうるバグの防止(例
sort
コレクションを変更すると思っている) - 他の協力者のために結果を捕捉しない、または捕捉する必要があるという明示的な意図
UIKit APIは、この点では遅れているようです。
@discardableResult
を使用した場合、完全に正常な(より一般的ではないにしても)
popViewController(animated:)
のように、戻り値をキャプチャせずに
続きを読む
関連
-
[解決済み】 libc++abi.dylib: NSException 型のキャッチできない例外で終了する (lldb)
-
[解決済み] Xcode コマンド /usr/bin/codesign は終了コード 1 で失敗しました : errSecInternalComponent
-
[解決済み] Int 型のインデックスを持つ [AnyObject]? の値を添え字として使用できません。
-
[解決済み] Xcode 9の問題を修正しました。"iPhoneはビジー状態です。iPhoneのデバッガーサポートを準備中"
-
[解決済み] Xcode Simulatorのアニメーションをエディタで再生すると、極端に遅くなる。
-
[解決済み] アプリケーションは、アプリケーション起動の最後にルートビューコントローラーを持つことが期待される
-
[解決済み] CFBundleVersionとCFBundleShortVersionStringには、どのような値を使用すればよいですか?
-
[解決済み] Xcode 6: iOS 8.1 The Developer Disk Imageをマウントできませんでした。
-
[解決済み] Swift 4 データが正しい形式でないため、読み取ることができませんでした。
-
[解決済み】(Swiftで)オブジェクトの型を調べるには?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 libc++abi.dylib: NSException 型のキャッチできない例外で終了する (lldb)
-
[解決済み】NSURLErrorDomainエラーコードの説明
-
[解決済み】クラスは両方で実装されており、どちらかが使用されることになります。どちらが未定義か
-
[解決済み] Xcodeエラー:SDK 'iOS 10.0'の製品タイプ 'Application'では、コード署名が必要です。
-
[解決済み] Xcodeエラー "Could not find Developer Disk Image" が発生する。
-
[解決済み] Swiftエラー。変数がそれ自身の初期値内で使用されている
-
[解決済み] Argument passed to call that takes no arguments "エラーを修正するには?
-
[解決済み] 起動画面にカスタムクラス名が設定されない場合がある
-
[解決済み] Xcode 6: iOS 8.1 The Developer Disk Imageをマウントできませんでした。
-
[解決済み] iOS Swift 3 - UIDatePicker