web-dev-qa-db-ja.com

NSDataをnilに初期化SWIFT

NSDataをnilに初期化するにはどうすればよいですか?

後で、UIImageJPEGRepresentationを使用する前に、このデータが空かどうかを確認する必要があるためです。

何かのようなもの :

if data == nil {
    data = UIImageJPEGRepresentation(image, 1)
}

Data.length == 0を試しましたが、理由がわかりません。初期化していないのに、data.lengthが0に等しくありません。

11
cmii

できることの1つは、NSDataプロパティがオプションであることを確認することです。 NSDataオブジェクトがまだ初期化されていない場合は、if nil 小切手。

次のようになります。

var data: NSData? = nil
if data == nil {
    data = UIImageJPEGRepresentation(image, 1)
}

Swiftのオプションはデフォルトでnilに設定されているため、最初の割り当て部分も必要ありません!これを行うだけです。

var data: NSData? //No need for "= nil" here.
if data == nil {
    data = UIImageJPEGRepresentation(image, 1)
}
18
Hector Matos

Nil NSDataが必要な場合は、次のように初期化できます。

var data: NSData?

次に、以下を使用できます。

if data == nil {
    data = UIImageJPEGRepresentation(image, 1)
}

空のデータが必要な場合は、次のように初期化します。

var data = NSData()

そして、それが空であることを確認するには:

if data.length == 0 {
    data = UIImageJPEGRepresentation(image, 1)
}
8
keithbhunter

data変数をnilに設定する場合は、_data = nil_を実行します。空に設定したい場合は、data = NSData()を実行してください。

0
Daniel T.