2016-03-07 3 views
0

Я пытаюсь передать некоторые параметры своей функции Code Cloud Cloud Code и получить следующее сообщение об ошибке в Xcode. cannot convert value of type '[String : String?]' to type '[NSObject : AnyObject]' in coercion. Он отлично работает, пока не укажу incomingUser.objectId. Вот код, который я передаю:Тип objectId для Parse Cloud Code

let params = ["userType" : userType, "recipient" : self.incomingUser.objectId] 

PFCloud.callFunctionInBackground("pushNotification", withParameters: params as [NSObject : AnyObject]) { 
    (res: AnyObject?, error: NSError?) -> Void in 
     print(res) 
     print(error) 
} 

Спасибо за любую помощь, которую вы можете предоставить.

ответ

1

попробуйте использовать params as [NSObject: AnyObject?] вместо этого.

Или, если API требует [NSObject: AnyObject], вам сначала необходимо развернуть objectId.

guard let objectId = self.incomingUser.objectId else { return } 

А потом сделать

let params = ["userType" : userType, "recipient" : objectId] 

PFCloud.callFunctionInBackground("pushNotification", withParameters: params as [NSObject : AnyObject]) { 
(res: AnyObject?, error: NSError?) -> Void in 
    print(res) 
    print(error) 
} 
+0

Заявление охранник работал для этого. Не могли бы вы объяснить, почему требуется «разворачивание»? Большое спасибо за помощь! – Robert

+0

Я бы порекомендовал [это] (http://stackoverflow.com/questions/24034483/what-is-an-unwrapped-value-in-swift) для справки. Я не очень хорошо разбираюсь в английском: P. Но дайте мне знать, если у вас есть еще одна головоломка после прочтения приведенного выше ответа. –

+0

Сделаю, еще раз спасибо! – Robert