Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift数组(字符串)不工作_Ios_Arrays_String_Swift_Literals - Fatal编程技术网

Ios Swift数组(字符串)不工作

Ios Swift数组(字符串)不工作,ios,arrays,string,swift,literals,Ios,Arrays,String,Swift,Literals,我想做一个刽子手游戏。我将粘贴我的代码,因为我觉得我的问题在这里的某个地方,我只是没有看到。向下看,找到我写这篇文章的地方,就是错误发生的地方。下面是我收到的错误消息:调用中缺少参数标签“arrayLiteral”。当我添加arrayLiteral时,代码不起作用。我是斯威夫特的新手,因此非常感谢您的帮助!非常感谢。(很抱歉,有很多代码可能与问题无关) 导入UIKit 类ViewController:UIViewController、UIExtFieldDelegate{ @IBVAR弱var机

我想做一个刽子手游戏。我将粘贴我的代码,因为我觉得我的问题在这里的某个地方,我只是没有看到。向下看,找到我写这篇文章的地方,就是错误发生的地方。下面是我收到的错误消息:调用中缺少参数标签“arrayLiteral”。当我添加arrayLiteral时,代码不起作用。我是斯威夫特的新手,因此非常感谢您的帮助!非常感谢。(很抱歉,有很多代码可能与问题无关)

导入UIKit
类ViewController:UIViewController、UIExtFieldDelegate{
@IBVAR弱var机密\u单词\u标签:UILabel!
@IBOUTLE弱var猜测_字段:UITextField!
@IBU按钮:UIButton!
//仅用于错误测试
@IBOUTLE弱var arb_打印:UILabel!
@IBOutlet弱var打印\u机密:UILabel!
var user_guesses=[String]()
var secret_word=“asdf”
var错误猜测=0
var guess_letter=“”
var correct_猜测=0
让我们限制错误=3
var secret_word_loc=[String]()
func return_len(文本:String)->Int{
var final=[String]()
var loc=数组(文本)
loc中的字母{
if!包含(最终,字符串(字母)){
final.append(字符串(字母))
}
}
返回final.count
}
func gen_secret_word()->字符串{
var random_num=arc4random_均匀(4)
var words=[“你好”、“世界”、“iphone”、“苹果”]
返回单词[Int(random_num)]
}
func开始游戏(动作:UIAlertAction!=nil){
秘密单词=gen\u secret\u word()
print\u secret.text=secret\u word
secret\u word\u label.text=破折号\u except(secret\u word,except:“1”)
这就是错误发生的地方<
secret\u word\u loc=数组(secret\u word)
>
用户猜测=[String]()
正确的猜测=0
错误的猜测=0
}
func破折号_except(单词:String,except:String)->String{
var loc=[String]()
用于枚举(word)中的(索引、字符){
loc.append(字符串(字符))
}
var loc_except=[String]()
用于枚举中的(索引、字符)(除外){
loc_除.append外(字符串(字符))
}
对于0..Bool中的x{
textField.resignFirstResponder()辞职
返回真值
}
@iAction func submit_已启用(发件人:ui按钮){
猜测字母=猜测字段。文本
如果包含(用户猜测,猜测字母){
var nuttin=“well nuttin”
}
否则,如果包含(秘密单词、猜测字母){
正确猜测+=1
用户猜测。追加(猜测字母)
}否则{
猜错了+=1
用户猜测。追加(猜测字母)
}
arb_print.text=”“.加入(用户猜测)
secret\u word\u label.text=破折号\u except(secret\u word,except:“”。加入(用户猜测))
如果猜测正确==返回长度(秘密单词){
//提醒他们赢了,然后要求继续玩,并说出他们猜了多少次
让ac=UIAlertController(标题:“您赢了”,消息:“恭喜您,您尝试了\(错误猜测+正确猜测),首选样式:。警报)
ac.addAction(UIAlertAction(标题:“再次播放”,样式:UIAlertActionStyle.Default,处理程序:开始游戏))
presentViewController(ac,动画:真,完成:无)
}
否则如果猜错==限制错误{
//提醒他们输了,然后要求继续玩,并给出单词
让ac=UIAlertController(标题:“您丢失了”,消息:“单词是\(秘密单词)”,首选样式:。警报)
ac.addAction(UIAlertAction(标题:“再次播放”,样式:UIAlertActionStyle.Default,处理程序:开始游戏))
presentViewController(ac,动画:真,完成:无)
}
}
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
guess_field.delegate=self
开始游戏()
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
}

试试
secret\u word\u loc=[secret\u word]
,因为您声明了
secret\u word\u loc
作为
Array
的一种类型,而
Array
实际上是
数组的一种类型。您可以声明
var secret\u word\u loc=[Character]()
或执行
secret\u word\u loc=map(“secret\u word”){字符串($0)}
密码中的每个字符转换为
字符串
,并将它们放入
数组

这里有(至少)两种可能的解决方案,因为
数组
有几个初始值设定项

首先,我们可以使用literal数组语法,它只是一对方括号,用逗号分隔数组元素:

secret_word_loc = [secret_word]
或者,我们可以使用更详细的初始值设定项,它实际上解释了错误消息的来源:

secret_word_loc = Array(arrayLiteral: secret_word)
Array
的初始值设定项接受以逗号分隔的数组元素列表来实例化数组

两种解决方案都非常有效

第二部分解释了错误消息:

secret_word_loc = Array(arrayLiteral: secret_word)
缺少参数标签“arrayLiteral”

这只是告诉你“嘿,一切都是对的,但是你必须使用参数标签,在本例中是
arrayLiteral


然而,第一种解决方案更为快速,我绝对希望在我维护的任何代码中都能看到这一点。

建议的代码不仅不能远程解决askers问题,甚至不能编译(除非它在Xcode 7上编译……我只在Xcode 6.3上测试了它。不管怎样,但它肯定不能在那里工作).你对这个答案投了赞成票,这让我很困惑。谢谢所有离开的人