【发布时间】:2015-10-28 12:01:04
【问题描述】:
这个对我来说根本没有意义。我有一个需要几个字符串的结构:
public struct Organization {
let id: String
let name: String
let legacyID: String?
let rID: String?
public init(id: String, name: String, legacyID: String?, rID: String?) {
self.id = id
self.name = name
self.legacyID = legacyID
self.rID = rID
}
}
请注意,legacyID 和 rID 是可选的。但是,如果我尝试将它们中的任何一个设置为nil 或.None,它们将被设置为""(空字符串)。例如:
let org = Organization(id: company.companyID, name: company.name, legacyID: company.context, rID: nil)
然而,当我尝试访问rID 时,它显示为"" 而不是nil。我什至尝试在init 中直接设置nil,它仍然设置为""。这弄乱了我的平等检查。有谁知道怎么回事?
注意:这是 Swift 1.2
【问题讨论】:
-
我无法重现此行为。您可以发布演示这一点的整个代码吗?
-
不,我真的不能……至少现在不行。我无法在一个小型独立项目中进行复制,而且我很确定如果我发布他们的整个代码库,我的雇主会解雇我……更不用说它是成千上万行代码!
-
@mattt 我正在使用模块/动态框架......并且组织是在模块中定义的,但在“主”应用程序中设置。这可能是原因吗?我在这里抓着稻草。我已经解决了这个问题,但它的存在让我很困扰。
-
我不是要你的代码库。足以重现问题。
-
是的,对不起。在一些时间压力下,无论如何我都无法在较小的项目中进行复制。但是这个问题在主要项目中仍然存在。但是,我知道是调试器出了问题。当我使用
println而不是从调试器打印时,实际代码会产生正确的结果。
标签: string swift struct optional