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

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

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

一个Address对象数组,它不是可选的——它肯定存在。我还有一个 class 维护这些 refs 的可选列表,如下所示:

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]?'

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

这是 Xcode6.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?
}

呸 - 明白了。这是在大规模重构之后发生的,Address class 存在于两个不同的模块中 - iOS 应用程序模块,以及嵌入式框架。

它是为嵌入式框架设计的,所以我从 iOS 应用程序的 'Compiled Sources' 部分删除了它,一切都很好。

似乎使用了 class 中的两个不同的 "versions",具体取决于它们的使用位置 referenced/returned。