gpt4 book ai didi

ios - 在 Swift 中,如何向我的函数添加一个附加参数以发送与 .json 文件中的变量对应的字符串

转载 作者:行者123 更新时间:2023-11-28 08:45:44 24 4
gpt4 key购买 nike

我是编程新手,一直在通过许多在线类(class)学习 Swift。在其中一个中,我们构建了一个问答游戏应用程序,在业余时间我一直在玩代码来改进它(我认为这是最好的学习方式!)

应用程序从包含以下格式数据的 .json 文件加载所有问题和答案:

{
"id" : "1",
"question": "Earth is a:",
"answers": [
"Planet",
"Meteor",
"Star",
"Asteroid"
],
"difficulty": "1"
}

正确答案总是列在第一个。现在,该应用程序通过以下功能呈现问题和答案:

func loadQuestions(index : Int)
{
let entry : NSDictionary = allEntries.objectAtIndex(index) as! NSDictionary
let question : NSString = entry.objectForKey("question") as! NSString
let arr : NSMutableArray = entry.objectForKey("answers") as! NSMutableArray

//println(question)
//println(arr)

labelQuestion.text = question as String

let indices : [Int] = [0,1,2,3]
//let newSequence = shuffle(indices)
let newSequence = indices.shuffle()
var i : Int = 0
for(i = 0; i < newSequence.count; i++)
{
let index = newSequence[i]
if(index == 0)
{
// we need to store the correct answer index
currentCorrectAnswerIndex = i

}

let answer = arr.objectAtIndex(index) as! NSString
switch(i)
{
case 0:
buttonA.setTitle(answer as String, forState: UIControlState.Normal)
break;

case 1:
buttonB.setTitle(answer as String, forState: UIControlState.Normal)
break;

case 2:
buttonC.setTitle(answer as String, forState: UIControlState.Normal)
break;

case 3:
buttonD.setTitle(answer as String, forState: UIControlState.Normal)
break;

default:
break;
}
}

我想做的是添加一个额外的参数,将与答案索引对应的字符串发送到名为 answertext 的变量,这样我就可以将这个变量用作标签中的字符串(例如, 以显示正确答案)。现在,如果我正确理解上面的代码,我想做的基本上是将 NSString 作为字符串发送。

我已经对此进行了几天的研究,我很确定我想做的事情是可行的。我研究过使用 switchif else,但没有成功。

我的问题是:我该怎么做?

任何代码示例或进一步阅读的推荐将不胜感激。或者,如果您提供实际代码,我将不胜感激对其工作原理的简要说明。我使用的是最新的 Xcode 和 Swift。

或者,如果我想做的事情不可行,请告诉我。

最佳答案

对我来说似乎是一个非常简单的请求。如果您想将正确答案存储在变量中,只需像这样在类的顶部定义变量。

var answertext:String?

然后在您的loadQuestions 方法中存储正确的答案之前您打乱数组 - 最好在您得到这样的答案数组后立即执行此操作。

let arr : NSMutableArray = entry.objectForKey("answers") as! NSMutableArray
if let a = arr.objectAtIndex(0) as? String {
self.answertext = a
}

因为我们使用 ?answertext 变量定义为可选变量 - 您稍后需要像这样访问它时将其解包。

if let a = self.answertext {
self.label.text = "the answer was \(a)"
}

如果这就是您要找的,请告诉我。

关于ios - 在 Swift 中,如何向我的函数添加一个附加参数以发送与 .json 文件中的变量对应的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35408743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com