无法将类型[地址]的值分配给[地址]类型的值?

时间:2015-07-10 20:50:31

标签: swift optional

我有一个类Address,它是一个非常简单的元数据容器。 (在底部。)

拥有一组Address个对象,这些对象不是可选的 - 它绝对存在。我还有一个维护这些引用的可选列表的类,如下所示:

public class Person {
    public var addresses : [Address]?
    ...
}

所以,当我有这些项目时,我正在使用:

if let theAddresses = backgroundTask.result {
    person.addresses = theAddresses
}

这似乎相当简单 - 但无论出于何种原因,我在分配person.addresses时遇到编译错误:

Cannot assign a value of type '[Address]' to a value of type '[Address]?'

这似乎不合理。我可以检查或试验什么来确定这里发生了什么?

这是Xcode 6.4。

public class Address {
    public let streetNum: Int
    public let streetName: String
    public let city: String
    public let state: String
    public let zip: String
}

BackgroundTask的源代码:

public class BackgroundTask<T> {
    public var result: T?
}

1 个答案:

答案 0 :(得分:1)

Phew - 想通了。这是在大型重构之后发生的,Address类存在于两个不同的模块中 - iOS应用程序模块以及嵌入式框架。

它适用于嵌入式框架,因此我将其从iOS应用程序的“Compiled Sources”部分中删除,并且一切都很可靠。

似乎正在使用该类的两个不同“版本”,具体取决于它们被引用/返回的位置。