2014-09-26 2 views
1

У меня есть пустое значение (null) для поля "homeTeamScore" на Parse backend. Тип поля анализа - Number.Значение null оценивается в TRUE

Однако нижеследующее условие оценивается как ИСТИНА. И затем взломать блок выполнения, когда он ИСТИНА.

if (team.objectForKey("homeTeamScore") != nil) { 
// execute some code 
var homeTeamScoreInt: Int = team.objectForKey("homeTeamScore") as Int! // <- this is where code throws exception 
} 

Я не могу понять, что происходит. Почему значение null оценивается как TRUE?

код ниже:

println("homeTeamScore") 
println(sweet.objectForKey("homeTeamScore")) 

печатает:

homeTeamScore 
<null> 
+1

'if let homeTeamScoreInt = team.objectForKey (« homeTeamScore »)' –

ответ

0

team.objectForKey("homeTeamScore") является NSNull в этом случае использование:

if (team.objectForKey("homeTeamScore") != nil && team.objectForKey("homeTeamScore") is NSNull == false) { 
    // execute some code 
    var homeTeamScoreInt: Int = team.objectForKey("homeTeamScore") as Int! // <- this is where code throws exception 
} 

Этот пример показывает разницу между тем, как nil и NSNull печатаются:

print(NSNull()) // "<null>" 
var a: Int? 
print(a)  // "nil" 
+0

Работал. Спасибо. Я знал, что должен понимать разницу между nil и NSNull. – dsaidov

Смежные вопросы