如何修复 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
,这是因为EnumerateSequence
是enumerate
方法的实现细节。他们希望你使用enumerate
,而不是依赖它的实现方式。
【讨论】:
【参考方案2】:经过一些测试,如果您想同时使用index
和object
,这是从 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