2014-12-03 11 views
9

Jak mogę zainicjować NSData do zera?init NSData do zera SWIFT

Ponieważ później, muszę sprawdzić, czy te dane są puste przed użyciem UIImageJPEGReprezentacja.

Coś jak:

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

Próbowałem data.length == 0, ale nie wiem dlaczego, data.length nie jest równa 0, a ja nie zainicjowany.

+0

Masz na myśli "zero" lub puste dane? To zupełnie inna sprawa. – Sulthan

+0

Przypuszczam, że mam na myśli puste dane. – cmii

+0

Dokładnie demonstrujesz, jak przetestować, czy "dane" (które muszą być opcjonalne) to 'nil' lub nie. A jeśli to opcjonalne nie zostało ustawione na nic, to już jest 'nil'. Jeśli chcesz jawnie ustawić go na 'nil', po prostu zrób to, np. 'data = zero'. Więc nie rozumiem "jak mogę zainicjować' NSData' na 'nil'?" pytanie. – Rob

Odpowiedz

14

Jedna rzecz, którą możesz zrobić, to upewnić się, że twoja własność NSData jest opcjonalna. Jeśli obiekt NSData nie został jeszcze zainicjowany, możesz wykonać test if nil.

To będzie wyglądać następująco:

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

Ponieważ OPCJE w Swift są ustawione na zero domyślnie, nie trzeba nawet początkową część zadanie! można po prostu to zrobić:

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

Jeśli chcesz ustawić zmienną data do nil, zrób data = nil. Jeśli chcesz ustawić go jako pusty, wykonaj data = NSData().

7

Jeśli chcesz nil NSData, można zainicjować to tak:

var data: NSData? 

Następnie można użyć:

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

Jeśli chcą pustych danych, a następnie zainicjować to tak :

var data = NSData() 

i sprawdzić, że jest pusta:

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

FYI, W pierwszym wierszu nie potrzebujesz części "= zero". Domyślnie zostanie zainicjowany na 'nil'. –