2017-02-08 9 views
-2

Я начинающий разработчик Swift, который выполняет Swift-миграцию приложения iOS, использующего Parse. Производственное приложение использует Swift 2 и работает правильно. Я обновил свой код до Swift 3, поэтому приложение запускается сейчас, но моя функция Parse Cloud не запускается, и я не могу найти причину.Swift Migration - Parse Cloud Function Wont Trigger

Вот код

@IBAction func action_signup_v2(_ sender: UIButton) { 
    Mixpanel.sharedInstance().track("ios_signup_phone_number_sent") 
    sender.isEnabled = false 
    let phoneNumberKit = PhoneNumberKit() 

    print("Tapped send button") 
    let phone_number=text_field_signup.text 
    do { 
     let phoneNumber = try phoneNumberKit.parse(phone_number!, withRegion: "US") 
     let phoneE164: String = phoneNumberKit.format(phoneNumber, toType: .e164) 
     let phone_clean = String(phoneE164.characters.dropFirst(2)) as String 
     self.phoneNumber=phone_clean 

     print(phone_number as Any) 
     PFCloud.callFunction(inBackground: "send_code", withParameters: ["phoneNumber":phone_clean,"language":"en"]) { 
      (response: Any?, error: Error?) in 
      print("Parse function triggered") 
      if error == nil { 
       // If there is no error 
       print("no err") 
       self.performSegue(withIdentifier: "go_to_verify_controller", sender: self) 
      } else { 
       Mixpanel.sharedInstance().track("ios_error_signup_phone_number") 
       self.present_alert(title: "Oops", content: "Our servers are too busy please try again in a few moment.") 
       print(error ?? "There is an error"); 
      } 
     } 
    } 
    catch { 
     print("Generic parser error") 
     self.present_alert(title: "Oops", content: "Please check the format of your phone number and try again.") 
     Mixpanel.sharedInstance().track("ios_error_signup_phone_number", properties : ["error_message":"generic parser error"]) 
    } 
} 

Вот что напечатано:

Tapped send button Optional("(650) 460-3317")

Здесь больше информации о Parse

PFCloud класс предоставляет методы для взаимодействия с Анализировать облачных функций , */ открытый класс PFCloud: NSObject {

/** 
Calls the given cloud function *asynchronously* with the parameters provided. 

@param function The function name to call. 
@param parameters The parameters to send to the function. 

@return The task, that encapsulates the work being done. 
*/ 
open class func callFunction(inBackground function: String, withParameters parameters: [AnyHashable : Any]?) -> BFTask<AnyObject> 


/** 
Calls the given cloud function *asynchronously* with the parameters provided 
and executes the given block when it is done. 

@param function The function name to call. 
@param parameters The parameters to send to the function. 
@param block The block to execute when the function call finished. 
It should have the following argument signature: `^(id result, NSError *error)`. 
*/ 
open class func callFunction(inBackground function: String, withParameters parameters: [AnyHashable : Any]?, block: Parse.PFIdResultBlock? = nil) 

}

ответ

1

Попробуйте изменить эту функцию для работы с блоком, как это:

(Блок для выполнения, когда вызов функции закончена):

PFCloud.callFunction(inBackground: "send_code", withParameters:["phoneNumber":phone_clean,"language":"en"] , block: { (response: Any?, error: Error?) in 

if error == nil { 
+0

Спасибо за ваш ответ. Он ничего не делает. «Функция синтаксического разбора» не печатается. –

+0

Можете ли вы вставить определение тоже, пожалуйста. облачная функция, чтобы я мог видеть – Cliffordwh

+0

Я обновил свой вопрос. Что вы подразумеваете под «определением»? Большое спасибо. –

1

Hello Функция Everyone не запускается, потому что Parse ShutDown. :-)

https://parseplatform.github.io Служба Parse теперь отключена. Для всех разработчиков там было приятно помочь вам создавать приложения. До свидания и удачи! Если у вас есть какие-либо проблемы в отношении миграции, обратитесь к руководству по миграции или обратитесь к адресу [email protected]

0

Найдено решение, в Swift миграции, я забыл добавить «_» в

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

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

  • Нет связанных вопросов^_^