Недавно я включил CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION
в Xcode, и в моем коде Objective-C меня ошеломили предупреждения, связанные с ошибкой. Наиболее распространенным является один предупреждающий тип: Implicit conversion from nullable pointer 'TypeA * _Nullable' to non-nullable pointer type 'TypeA * _Nonnull'
.Предупреждения о недействительности Clang и способы их приближения
Я начал свою попытку удалить с помощью этих предупреждений, создав локальный объект того же типа в методе, описанном здесь. https://www.mail-archive.com/xcode-users%40lists.apple.com/msg02260.html В этой статье говорится, что сначала, используя локальный, этот объект имеет атрибут неуказанный nullable, поэтому его можно использовать как законный параметр для методов, ожидающих ненулевое значение.
Но я чувствую, что это полицейский шаг и действительно не решает проблему любым полезным способом.
Прошел ли это упражнение уже? Я был бы признателен, если вы можете поделиться стратегией, которую вы приняли.
В какой проблеме вы пытаетесь решить проблему? Подавление предупреждения, когда вы знаете, что объект не нуль? Или фактический процесс проверки того, что объект не равен нулю? – dan
@dan Предположим, у меня есть код как следующий: 'NSMutableData * someData = [NSMutableData dataWithCapacity: d1000]; [someData appendData: [NSString stringWithFormat: @" Мне нравится выигрывать $% d ", 1000000]];'. Поскольку 'appendData:' ожидает ненулевого обходного пути, сначала нужно создать NSString * перед вызовом. В идеале я не хочу этого делать, потому что он просто добавляет лишние строки кода, которые пытаются решить проблему и не дают мне вообще никаких преимуществ. – KBancho
Преимущество в том, что предупреждения больше нет. Независимо от того, стоит ли вам дополнительная строка кода, зависит от вас. Я не вижу никаких проблем с этим. – dan