Od wersji beta 8.3 zilliony ostrzeżeń „Interpolacja łańcuchów generuje opis debugowania dla wartości opcjonalnej; czy chodziło Ci o to, aby było to jawne?” pojawił się w moim kodzie.
Na przykład ostrzeżenie pojawiło się w następującej sytuacji, w której opcje mogą prowadzić do zera:
let msg = "*** Error \(options["taskDescription"]): cannot load \(sUrl) \(error)"
Zgodnie z wcześniejszym projektem, dla mnie (i dla kompilatora) opcje opcjonalne były w porządku interpolowane jako „zero”. Ale kompilator zmienił zdanie.
Kompilator sugeruje dodanie konstruktora typu String z następującym opisem:
let msg = "*** Error \(String(describing: options["taskDescription"])): cannot load \(sUrl) \(error)"
Oczywiście wyniki są wyraźne, ale moim zdaniem również bardzo uciążliwe. Czy jest lepsza opcja? Czy muszę naprawić wszystkie te ostrzeżenia, czy lepiej poczekać na następną wersję beta?