4
この件に関して私が読んできたことの多くは、現時点では不可能であると信じていますが、誰かが変数の実際の名前スウィフトでSwiftのアクセス/プリント/ログ変数名
私の使用例は、ガードステートメントのエラーの原因を正確に追跡するためのデバッグ/ロギングのためのものです。私は、手動で文字列を渡す必要はなく、関数のシグネチャにはデフォルトのパラメータを持つことができます。また、ガード・ステートメントは一般的なスウィフト・コンベンションであるため、このようなことをしている自分自身や他の人にとって、これは時間を節約することができます。
func sampleFunction(_ funkyVariable: String?, boringVariable: String?) {
guard let funkyVariable = funkyVariable.guarded(), let boringVariable = boringVariable.guarded() else {
// Custom handling of else condition if necessary
return
}
print("\(funkyVariable) and \(boringVariable) aren't nil!")
}
:以下私が考えていることは、私はおそらくこのような状況で有用であろう
guarded()
機能
extension Optional {
func guarded(variableName: String = #variableName, caller: String = #function) -> Optional {
if self == nil {
log.warning(message: "Guard statement failed to unwrap variable: \(variableName) in function: \(function)")
}
return self
}
}
に#file
、#line
のような他の情報を利用することになる、プラス以下の通りですそれは呼ばれています次に
、:
sampleFunction(funkyVariable: "string", boringVariable: nil)
// Results in logger message: "Guard statement failed to unwrap variable: boringVariable in function: sampleFunction"
はあなたがここに手動努力を超えた任意の考えを持っているかどうかを確認するのが大好きです。ありがとう!