iOS当按下按钮“下一步”加载新行表单解析Swift
Posted
技术标签:
【中文标题】iOS当按下按钮“下一步”加载新行表单解析Swift【英文标题】:iOS When press button "next" loading new row form parse Swift 【发布时间】:2018-07-31 06:03:48 【问题描述】:我尝试创建一些应用程序,但我遇到了问题,我有这样的结构、问题和答案。
我的班级:
class QuestionManager
var question: String?
var answerA: String?
var answerB: String?
var answerC: String?
var answerD: String?
我的代码:
var questions = [QuestionManager]()
var arrayIndex = 0
let query = PFQuery(className: "test")
query.findObjectsInBackground (objects, error) in
if error == nil && objects != nil
for object in objects as? [PFObject]
self.questions.append(QuestionManager(
question: object!["question"] as! String,
answerA: object!["answer1"] as! String,
answerB: object!["answer2"] as! String,
answerC: object!["answer3"] as! String,
answerD: object!["answer4"] as! String
))
else
print("Error")
使用此代码我得到错误:
无法使用“(QuestionManager)”类型的参数列表调用“附加”
为什么我得到这个,错误,也许你会看到我的错误
【问题讨论】:
【参考方案1】:替换这个
var questions = [QuestionManager]()
var arrayIndex = 0
let query = PFQuery(className: "test")
query.findObjectsInBackground (objects, error) in
if error == nil && objects != nil
for object in objects as? [PFObject]
let objQuestionManager = QuestionManager()
objQuestionManager.question = object!["question"] as! String
objQuestionManager.answerA = object!["answer1"] as! String
objQuestionManager.answerB = object!["answer2"] as! String
objQuestionManager.answerC = object!["answer3"] as! String
objQuestionManager.answerD = object!["answer4"] as! String
self.questions.append(objQuestionManager)
else
print("Error")
【讨论】:
线程 1:致命错误:在展开可选值时意外发现 nil 现在我想去下一个问题,如果我添加到 arrayIndex +1 什么都没有发生 以上代码将所有对象添加到数组中。用你如何加载下一个问题来更新你的问题。 我有更多的 200 个问题,当我收到 100 个问题时,我收到错误致命错误:索引超出范围 上面的代码不会出现这个错误,我认为这个错误是在你加载下一个问题时产生的。【参考方案2】:将初始化器添加到接受 4 个输入值的类。
class QuestionManager
var question: String?
var answerA: String?
var answerB: String?
var answerC: String?
var answerD: String?
init(quest: String?, ansA: String? , ansB: String? , ansC: String? , ansD: String)
question = ques
answerA = ansA
answerB = ansB
answerC = ansC
answerD = ansD
【讨论】:
【参考方案3】:您收到此错误是因为您没有在模型类中编写 init() 方法并且您正在尝试初始化模型类。你可以这样写。
class QuestionManager
var question = ""
var answerA = ""
var answerB = ""
var answerC = ""
var answerD = ""
init(question: String, answerA: String, answerB: String, answerC: String, answerD: String)
self.question = question
self.answerA = answerA
self.answerB = answerB
self.answerC = answerC
self.answerD = answerD
【讨论】:
以上是关于iOS当按下按钮“下一步”加载新行表单解析Swift的主要内容,如果未能解决你的问题,请参考以下文章
当按下提交按钮时,与在文本框中提取信息相比,表单的用途是啥? [复制]
Ninja 表单:多部分表单 - 字段单击的下一步 (jQuery)