快速目标C中的关闭,并迅速将数字错误传递给目标c“无法识别的选择器已发送给类”

问题描述 投票:0回答:1

我在目标c中有以下代码

。h文件

  + (void)updateSecurityQuestionWithCompletion:(NSDictionary *) SecurityData competion:(UpdateSecurityQuestionCompletion)completion;

。m文件

  + (void)updateSecurityQuestionWithCompletion:(NSDictionary *) SecurityData completion: (UpdateSecurityQuestionCompletion)completion
  {
[NetworkRequestScheduler updateChangedSecQeustionWithCompletion:SecurityData completion:completion];

 }

swift code

    func updateSecurityQuestionfromData(data: [String: Any]){
    BMPassSDK.updateSecurityQuestion(withCompletion: data, competion: {[weak self] (walletConfig: SecurityQuesstionUpdateModel?, errors: BMErrors?) in
        if errors != nil {
            _ = errors?.allErrors()?.first as! NSError
            return
        }
    if let config = walletConfig {
        self?.loadUpdateSecurityConfig = config
        let data = config

        for each in data.loadSecurityDataConfig{
            let _id = each["id"] as! Int
            let _question = each["question"] as! String
            self!.loadedSecurityQuestions.append(SecurityQuestion(id: _id, question: _question))
        }
        //self?.delegate?.getSavedSecurityQuestion(securityQuestion: self!.loadedSecurityQuestions)
    }
})
}

   var updatedsSecurityQuestion: [NSMutableDictionary] = valueSent
    var securityData: NSMutableDictionary = [:]
  //        let data: NSMutableDictionary = ["questions_linked":"true"]
    let securityKey = "security_question"
    securityData.setObject(updatedsSecurityQuestion, forKey: securityKey as NSCopying)
  //        (updatedsSecurityQuestion, forKey: "security_question")
  //        securityData.setValue(updatedsSecurityQuestion, forKey: "security_question")

    securityData.setObject("true", forKey: "question_linked" as NSCopying)


    let Data = securityData as! [String : Any]
    print(Data)
    //let Data = securityData.getD
    print(securityData)

    updateSecurityQuestionfromData(data: Data)

我在目标c中传递了NSDictionary,但我不知道为什么它要求这种格式的数据

        //        BMPassSDK.updateSecurityQuestion(withCompletion: <#T##[AnyHashable : Any]!#>, competion: <#T##UpdateSecurityQuestionCompletion!##UpdateSecurityQuestionCompletion!##(SecurityQuesstionUpdateModel?, BMErrors?) -> Void#>)

整个崩溃,并显示错误“ updateSecurityQuestionWithCompletion:competion:]:无法识别的选择器已发送给类”我知道该错误表示我正在发送的数据格式错误。但我不明白为什么我的nsdcitionary会转换为json格式。

ios objective-c swift closures objective-c-blocks
1个回答
0
投票

答案真的很傻.h文件中的“ competion”一词应为“ completion”]

     (void)updateSecurityQuestionWithCompletion:(NSDictionary *) SecurityData completion:(UpdateSecurityQuestionCompletion)completion
© www.soinside.com 2019 - 2024. All rights reserved.