2016-05-01 9 views
1

Когда пользователь делает логин в facebook в моем приложении, некоторые ожидаемые значения, такие как dateOfBirth, могут быть нулевыми. Я хочу установить значение self.fbResponse.email для NSNull(), если оно равно нулю. Чтобы я мог отправлять параметры на сервер.Установите NSNull(), если строка равна nil

 let parameter:[String:AnyObject] = 
      [ 
       "facebookId":self.fbResponse.fbID!, 
       "fbToken":"randomToken", 
       "email" : self.fbResponse.email!, 
       "dateOfBirth": self.fbResponse.dob, 
       "gender" : self.fbResponse.gender!, 
       "info": self.fbResponse.aboutMe!, 
       "fullName":self.fbResponse.fullName!, 
       "profileImageUrl":self.fbResponse.pictureURL! 
       "location": location 
     ] 
+0

Не могли бы вы просто опустить ключ. если это 'nil', или отправить пустую строку? – vadian

ответ

6

Вы можете использовать оператор ?? для этого:

"email" : self.fbResponse.email ?? NSNull() 

Он присваивает развернутое значение self.fbResponse.email, если это не nil, и присваивает NSNull() иначе.

Оператор «короткое замыкание», что означает, что правая сторона не оценена, если это действительно необходимо, поскольку левая сторона равна nil.

+0

спасибо, он решил проблему. –