我有一个非常奇怪的问题。 我需要检查我的二进制数据(在我的coredata基础上)是否为零。
在控制台中,如果我直接打印变量,它就是零。 但如果我使用if / else条件来检查它,我的变量不是nil。
println(self.selectedPost!.attachment?.image) // ->print nil
if let mybinary = self.selectedPost!.attachment?.image {
println("mybinary is not nil") // -> print "mybinary is not nil"
} else {
println("mybinary is nil")
}
编辑
使用相同的结果:
if self.selectedPost!.attachment?.image != nil {...
println("mybinary is not nil") // -> print "mybinary is not nil"
} else {
println("mybinary is nil")
}
我不明白为什么。
此问题仅在发布模式下出现,而不在调试中出现。
答案 0 :(得分:0)
您需要查看!=nil
按照目前的情况,myBinary
的值是可选的。你需要检查它的内容。
答案 1 :(得分:0)
您也可以尝试我们as?
在if语句中转换数据。
println(self.selectedPost!.attachment?.image) // ->print nil
if let mybinary = self.selectedPost!.attachment?.image as? NSData {
println("mybinary is not nil") // -> print "mybinary is not nil"
} else {
println("mybinary is nil")
}
如果可能,as? NSData
将投放mybinary
。如果它为零,则返回nil而不是可选类型。