2017-06-23 4 views
-1

Ich habe ein Wörterbuch wie dieseWörterbuch Wert nil immer in schnellen 3

["Success": 1, "ControlId": <null>, "Message": Record has been saved, "MessageId": Record has been saved, "Source": <null>, "Result": 193, "ErrorCode": 0, "Description": <null>] 

So Ich mag diese

if let success=self.dm.responseDict["Success"] as? Int 
{ 
    if (success==1) 
    { 
     callback(true) 
    } 
    else 
    { 
     if let errmsg=self.dm.responseDict["Message"] as? String 
     { 
      self.strErrorMessage=errmsg 
     } 
     callback(false) 
    } 
} 

Aber mein Problem ist, diese success immer null ist und nicht die Bedingung tue . Was ist der Grund dafür und wie kann ich das auf korrekte Weise überprüfen?

+3

Vielleicht ist der Wert für den „Erfolg“ Schlüssel ist ein 'Bool' anstelle eines' Int'. – rmaddy

Antwort

0

Wenn success ist nil dann der Fehler haben in Ihrem as? Int gegeben, dass Ihr Wörterbuch wie folgt aussieht:

["Success": 1, "ControlId": <null>, "Message": Record has been saved, "MessageId": Record has been saved, "Source": <null>, "Result": 193, "ErrorCode": 0, "Description": <null>] 

Also Ihr Success Wert ist wahrscheinlich ein Bool statt Int.

Versuchen Sie stattdessen aus:

if let success = success=self.dm.responseDict["Success"] as? Bool { 
    if success { 
     callback(true) 
    } else { 
     if let errmsg=self.dm.responseDict["Message"] as? String { 
      self.strErrorMessage=errmsg 
     } 
     callback(false) 
    } 
} 
Verwandte Themen