Предупреждение о скрывающихся членских переменных?

На данный момент нет надежного способа сделать это. См. Комментарий разработчика Apple по https://devforums.apple.com/thread/227425

В настоящее время Swift не имеет особого подхода к самоанализу.

Есть некоторые самоанализ машины, которая используется для игровых площадок. Я не знаю, предназначен ли это для API.

Некоторые методы и переменные Swift можно исследовать с помощью самоанализа во время выполнения Objective-C. Это, вероятно, будет лучшим решением сегодня.

У Свифта действительно есть понятие метатипа, несколько аналогичное типу класса в Objective C. Вы можете найти его, используя TypeName.self, например:

class Foo {
    @required  init() {
    }
}

var normalFoo : Foo = Foo()
var fooType : Foo.Type = Foo.self;
var fooFromMetatype : Foo = fooType();

Возможно, по времени выпуска Метатипы будут включать в себя больше способностей к самоанализу. Я предлагаю подать запрос на функцию радара для этого.

8
задан Lajos Nagy 26 May 2009 в 23:21
поделиться

3 ответа

Используйте -Wshadow.

Кстати, ни -W, ни -Wall не включают -Wshadow.

Приятно, когда компилятор помогает избежать подобных проблем, но это помогло в этом даже нет необходимости, если вы используете соглашения, которые помогают избежать его создания в первую очередь, например, зарезервировать имена формы x_ для переменных-членов, а не для локальных переменных.

26
ответ дан 5 December 2019 в 05:27
поделиться

FWIW У меня не было бы этой проблемы, потому что я использую соглашение об именах, чтобы отличать данные-члены от локальных переменных: идентификаторы данных-членов всегда имеют префикс m_ .

]
5
ответ дан 5 December 2019 в 05:27
поделиться

Мы используем эти бородавки в начале имен - a_ аргумент d_ элемент данных s_ статические данные в классе f_ статические данные в файле

... и никакой бородавки для локальных переменных.

Поистине, книга Лакоса - ваш друг.

0
ответ дан 5 December 2019 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: