Swift 2 NSData 为零
Swift 2 NSData as nil
我的应用程序在 NSData 变量中发现 nil
时有时会崩溃。当我尝试解释错误时,它说 "Value of type "NSData
" can never be nil, comparation isn't allowed.
此外,我已将字段 data
初始化为 var data = NSData()
,所以我无法理解 nil 的来源。
if self.data != nil {
self.data = data!
.
.
.
}
您正在比较 self.data
与 nil
,而不是 data
。因此,我怀疑您从未分配给 self.data
.
您混淆了实例变量和局部变量。
self.data
是实例变量,你定义的不是nil
data
是局部变量,可能是您调用的某个函数的返回值。它是 nilable(即 NSData?
)
如果让我猜测,您的代码将如下所示:
class MyClas {
var data = NSData()
func someFunction() {
let data = anotherFunction() // This returns an NSData?
if self.data != nil {
....
}
}
}
改成这样:
if data != nil {
self.data = data!
}
您还可以使用可选绑定:
if let data = data {
// data is guaranteed to be non-nil in here
self.data = data
}
我的应用程序在 NSData 变量中发现 nil
时有时会崩溃。当我尝试解释错误时,它说 "Value of type "NSData
" can never be nil, comparation isn't allowed.
此外,我已将字段 data
初始化为 var data = NSData()
,所以我无法理解 nil 的来源。
if self.data != nil {
self.data = data!
.
.
.
}
您正在比较 self.data
与 nil
,而不是 data
。因此,我怀疑您从未分配给 self.data
.
您混淆了实例变量和局部变量。
self.data
是实例变量,你定义的不是nildata
是局部变量,可能是您调用的某个函数的返回值。它是 nilable(即NSData?
)
如果让我猜测,您的代码将如下所示:
class MyClas {
var data = NSData()
func someFunction() {
let data = anotherFunction() // This returns an NSData?
if self.data != nil {
....
}
}
}
改成这样:
if data != nil {
self.data = data!
}
您还可以使用可选绑定:
if let data = data {
// data is guaranteed to be non-nil in here
self.data = data
}