当前位置: 首页 > 面试题库 >

Swift:预期的声明错误将“ Label”设置为字符串变量

史弘博
2023-03-14
问题内容

我正在一个小型的单窗格应用程序中管理不同的语言,为每个注释使用不同的字符串数组,并由整数变量“ userLang”索引,然后设置label.text =
array [index]。基本代码是:

import UIKit
class ViewController: UIViewController {
   var userLang = 0
   var arrayOne = ["hi", "hola"]
   var arrayTwo = ["Bye", "Adios"]
   @IBOutlet weak var msgArrayOne: UILabel!
   @IBOutlet weak var msgArrayTwo: UILabel!

   msgArrayOne.text = arrayOne[userLang]  //Error here: !Expected declaration
   msgArrayTwo.text = arrayTwo[userLang]  //odd, but this line gets no error until I 
                                          //remove the first line above, then 
                                          //this line gets the same error.

   override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
   }

   override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
   }
 }

我不断收到“期望的声明”错误。我曾尝试在引号(而不是数组)中使用简单的字符串作为测试,但仍然遇到相同的错误。我已经在网上搜索过,却没有找到解决问题的任何建议。如果我使用的是“保留”引用,我尝试更改标签名称。

我在Apple的开发人员手册中搜索了Swift,但找不到适合标签的语法。此语法已在其他项目中使用,所以我不确定发生了什么。我什至尝试将相关部分复制/粘贴到一个新项目中(在线建议之一,以防Xcode错误),但没有更好的结果。我已经注意到,Swift中的微小差异(空格或大写字母)可以产生很大的差异。我在这里做错什么了吗?有什么建议?


问题答案:
msgArrayOne.text = arrayOne[userLang]  
msgArrayTwo.text = arrayTwo[userLang]

这些不是声明,您需要将它们移至viewDidLoad()或其他适当的位置。标签的语法很好,但是代码在类中的位置错误。



 类似资料:
  • 问题内容: 我正在尝试使用将a的布尔值传递给另一个类。由于某些原因,在包含开关的类中,应该将值设置为的语句无法读取开关声明。 ViewController.swift 在第一个If语句(shrimpSwitch.on)中,它将显示Expected Declaration。我是在声明所有开关错误吗?任何帮助,将不胜感激。谢谢 问题答案: 问题是您需要将代码放入方法中。您所需要做的就是将其移动到vie

  • 问题内容: 我想知道在MS SQL Server 2005中是否有办法做到这一点: 这可能吗? 问题答案: 有可能,但是需要使用动态SQL。 我建议先阅读动态SQL的诅咒和祝福,然后再继续… 动态SQL只是一条SQL语句,在执行前由字符串组成。因此,通常的字符串连接发生。每当您想以不允许的SQL语法执行某些操作时,都需要使用动态SQL,例如: 单个参数表示IN子句的逗号分隔值列表 一个既代表值又代

  • 我有一个基于SpringBoot构建的web应用程序,运行在Tomcat8.5服务器上。我试图在Eclipse中创建一个json对象,其中包含关于api的信息。但它抛出了一个错误:“Expected value at 1:0”。当我删除对象声明时,错误得到了解决。 这是我的url.json文件的代码。 为什么我得到这个错误,我该如何解决这个问题。

  • 问题内容: 看看这里找到的这个片段 我可以在中了解到,它有一个名为的var ,它的类型是var ,但是那东西呢 在int之后?这是什么意思?谢谢。 问题答案: 这是一个结构标记。库使用它们来用额外的信息注释结构域;在这种情况下,模块encoding / xml 使用这些struct标签来表示哪些标签对应于struct字段。

  • 问题内容: 我的变量在其中具有递增的数字,例如row0text,row1text,row2text等。 我已经找到了如何动态创建这些变量名的字符串版本的方法,但是一旦有了这些字符串,如何将它们用作实际的变量名而不是代码中的字符串? 例: 一旦知道如何执行此操作,就可以使用for循环遍历这些变量;只是目前我不确定如何在我的代码中将该字符串用作变量名。 谢谢! 问题答案: 简短的回答: 没有 充分的理

  • 问题内容: 我有一个使用转换的字符串,现在我正尝试将其转换回来,但是当UIPicker启动时,这给了我错误的一天 我尝试了硬编码,但结果仍然相同。UIDatePicker上的日期在1991年12月22日开始。 如果我使用hardcore ,则从1979年12月23日开始。 (我不知道是不是这种情况,但是我在UIPickerView中有,但它是为字符串使用的。。我不认为是因为保存时,它保存了正确的值