如何修复 Xcode 7.3 警告:`init` 已弃用:它将在 Swift 3 中删除:在序列上使用`enumerate()` 方法 [重复]

Posted

技术标签:

【中文标题】如何修复 Xcode 7.3 警告:`init` 已弃用:它将在 Swift 3 中删除:在序列上使用`enumerate()` 方法 [重复]【英文标题】:How to fix Xcode 7.3 warning: `init` is deprecated: it will be removed in Swift 3: Use `enumerate()` method on the sequence [duplicate] 【发布时间】:2016-03-31 16:22:25 【问题描述】:

从最近更新的 Xcode 7.3 开始,我开始看到这条消息。我正在使用如下的 for in 循环序列:

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

     //Do something with the index

备注在EnumerateSequence

【问题讨论】:

您在这里没有提出实际问题,警告消息本身(您在标题中引用)告诉您如何消除警告消息。你有什么问题? 【参考方案1】:

如果您想知道为什么他们添加了此警告并且要删除EnumerateSequence.init,这是因为EnumerateSequenceenumerate 方法的实现细节。他们希望你使用enumerate,而不是依赖它的实现方式。

【讨论】:

【参考方案2】:

经过一些测试,如果您想同时使用indexobject,这是从 Swift 2.2 开始使用的解决方案:

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

    //Do something with the index

删除 EnumerateSequence 并使用您的 Array.enumerate() 方法

【讨论】:

这是第一次问题的答案已经在问题标题中了。 如果您想使用for index in self.products.indices,如果您不想使用该项目,则不需要enumerate 我把问题说得更清楚了,假设我们需要索引和对象。 @Sulthan OP 也提供了他自己的答案。此外,这与 Swift 2.2 无关, enumerate() 从 Swift 2.0 开始就存在。

以上是关于如何修复 Xcode 7.3 警告:`init` 已弃用:它将在 Swift 3 中删除:在序列上使用`enumerate()` 方法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 7.3 / Swift 2:“没有使用 Objective-C 选择器声明的方法”警告

UIFoundation 2 片架构 arm64 错误 Xcode 7.3

Xcode 7.3 Beta发布:Code Completion终于达到「智能」模式!

在 gitlab 日志中禁用 xcode 警告

奇怪的 Xcode 警告在导入上方弹出

iOS开发周报:Xcode 7.3 beta 和 iOS 9.3 beta 发布,是否会带来教育行业的改变