在 Swift 中使用对象初始化器来替换 AllocWithZone

Posted

技术标签:

【中文标题】在 Swift 中使用对象初始化器来替换 AllocWithZone【英文标题】:Using Object Initializers in Swift to replace AllocWithZone 【发布时间】:2015-08-07 19:26:28 【问题描述】:

我最近将我的 Xcode 从 Xcode 7 beta 4 更新到 Xcode 7 beta 5,并开始出现以前不存在的错误。那就是:“AllocWithZone 在 Swift 中不可用:请改用 Object Initializers。”

这里是发现错误的代码:

public func copyWithZone(zone: NSZone) -> AnyObject 
    let copy = self.dynamicType.allocWithZone(zone) as ChartDataSet
    copy.colors = colors
    copy.label = self.label
    return copy

我应该用什么来代替“.allocWithZone”,以便它使用对象初始化器而不是这个 Obj C 组件?

【问题讨论】:

看看***.com/a/25809379/1187415 ... 【参考方案1】:

我用过这个,ios 图表库对我有用:

let copy=self.dynamicType.initialize() as! ChartDataEntry

【讨论】:

谢谢,是的,我使用的是 iOS 图表库。 顺便说一句,有一个 swift-2.0 分支,更新到 beta 5 :-) 谢谢 daniel.gindi。这些图表看起来很棒。

以上是关于在 Swift 中使用对象初始化器来替换 AllocWithZone的主要内容,如果未能解决你的问题,请参考以下文章

您是否可以利用Swift的结构默认初始化器来简化参数传递?

如何在 Swift 的 NSCoding 初始化中返回预先存在的核心数据对象?

swift 使用类包装器来包装pigvalue实例以从集合中调用它们

语义释放是不是有一个替换器来替换文件中的字符串?

将 SWIFT 字典替换为 JSON 对象

Swift Playground 中的 SceneKit 粒子系统