无法将 [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。
我有一个 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。