2016-03-31 1 views
-1

Из недавнего обновления Xcode 7.3 я начал видеть это сообщение. Я использую последовательность для в петле, как показано ниже:Как исправить предупреждение Xcode 7.3: `init` устарел: он будет удален в Swift 3: используйте метод` enumerate() `в последовательности

for (index, product) in EnumerateSequence(self.products) { 
    //Do something with the product 

    //Do something with the index 
} 

Нота находится на EnumerateSequence.

+3

Здесь вы не задали вопрос, и само предупреждение (которое вы указали в своем названии) сообщает вам, как устранить предупреждение. Какой у Вас вопрос? –

ответ

1

После некоторого тестирования, это решение использовать от Swift 2,2 года в случае, если вы хотите использовать как index и object:

for (index, product) in self.products.enumerate() { 
    //Do something with the product 

    //Do something with the index 
} 

Удалить EnumerateSequence и использовать ваш метод Array.enumerate()

+4

Впервые ответ на вопрос уже включен в заголовок вопроса. – Sulthan

+0

В вашем случае вы хотите использовать 'for index in self.products.indices', не нужно« перечислять », если вы не хотите использовать этот элемент. – Sulthan

+0

Я поставил вопрос более ясным, предположим, что нам нужен как индекс, так и объект. –

2

Если вы задаетесь вопросом почему они добавили это предупреждение и собираются удалить EnumerateSequence.init, потому что EnumerateSequence является детальностью реализации метода enumerate. Они хотят, чтобы вы использовали enumerate и не полагались на то, как это реализовано.

Смежные вопросы