将NSData初始化为nil SWIFT

cmi*_*mii 11 nsdata ios swift

如何将NSData初始化为nil?

因为稍后,我需要在使用UIImageJPEGRepresentation之前检查此数据是否为空.

就像是 :

if data == nil {
    data = UIImageJPEGRepresentation(image, 1)
}
Run Code Online (Sandbox Code Playgroud)

我尝试了data.length == 0但是我不知道为什么,在我没有初始化的情况下,data.length不等于0.

Hec*_*tos 18

您可以做的一件事是确保您的NSData财产是可选的.如果尚未初始化NSData对象,则可以执行if nil检查.

它看起来像这样:

var data: NSData? = nil
if data == nil {
    data = UIImageJPEGRepresentation(image, 1)
}
Run Code Online (Sandbox Code Playgroud)

因为Swift中的选项默认设置为nil,所以你甚至不需要初始赋值部分!你可以这样做:

var data: NSData? //No need for "= nil" here.
if data == nil {
    data = UIImageJPEGRepresentation(image, 1)
}
Run Code Online (Sandbox Code Playgroud)


kei*_*ter 8

如果你想要一个nil NSData,那么你可以像这样初始化它:

var data: NSData?
Run Code Online (Sandbox Code Playgroud)

然后你可以使用:

if data == nil {
    data = UIImageJPEGRepresentation(image, 1)
}
Run Code Online (Sandbox Code Playgroud)

如果您想要空数据,请按以下方式初始化:

var data = NSData()
Run Code Online (Sandbox Code Playgroud)

并检查它是否为空:

if data.length == 0 {
    data = UIImageJPEGRepresentation(image, 1)
}
Run Code Online (Sandbox Code Playgroud)