Swift字典包含值,但不会在调试器控制台上打印

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift字典包含值,但不会在调试器控制台上打印相关的知识,希望对你有一定的参考价值。

我正在这样的字典中创建和打印值

let answersToSubmit = SubmitAnswerModel() //main model
let realm = try! Realm()
let savedExamResponse = realm.object(ofType: SavedExamResponse.self, forPrimaryKey: id)
answersToSubmit.uniqid = savedExamResponse?.uniqueId

var answerListToSubmit =  [QuestionAnswersToSubmit]()

for item in (savedExamResponse?.questionAnswerList)! {
    let answerToSubmit = QuestionAnswersToSubmit()
    answerToSubmit.qid =  item.questionId
    answerToSubmit.value.append(item.selectedOption)            
    answerListToSubmit.append(answerToSubmit)

}

answersToSubmit.answers = answerListToSubmit
print("length %s ",answersToSubmit.answers.count)//this is printing 100
print("answers to submit %s",answersToSubmit)//this is printing only the first part

输出是这样的

length %s  100
answers to submit %s SubmitAnswerModel {
    uniqid = test-5cb2f6a2d81034.66536499;
    //the rest of the object needs to printed here, isn't it
}

所以我不太确定如果我已经附加数组并将其放入字典中。任何帮助,将不胜感激。谢谢

答案

如果您想要更全面的日志输出,请尝试使用dump()函数:

dump(answersToSubmit)

这会向控制台输出更多信息。

另一答案

这是你的for语句中的预期输出。我不确定为什么你试图追加,领域不会像这样处理数组。如果需要存储数组,则可能需要使用领域列表。

但是从您展示的代码中,这应该可行。

 for item in (savedExamResponse?.questionAnswerList)! {
   let answerToSubmit = QuestionAnswersToSubmit()
   answerToSubmit.qid =  item.questionId
   answerToSubmit.value = item.selectedOption          
   answerListToSubmit = answerToSubmit

}

以上是关于Swift字典包含值,但不会在调试器控制台上打印的主要内容,如果未能解决你的问题,请参考以下文章

如何将打印在控制台上的值存储为矢量?

从 firebase 基于云的数据库中获取用户数据并转换为字典

尽管声明明确,但 Swift 中的 String 值不会改变 [重复]

接收 404 运行弹簧靴

解析 JSON 字典 Swift5

添加手势识别器 uivew 导航栏 swift 不起作用