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

使用Swift的预期声明错误

归明诚
2023-03-14
问题内容

我正在尝试使用将a的布尔值传递UISwitch给另一个类NSUserDefaults。由于某些原因,在包含开关的类中,if应该将值设置为的语句NSUserDefaults无法读取开关声明

ViewController.swift

@IBOutlet var shrimpSwitch: UISwitch!

@IBOutlet var nutSwitch: UISwitch!

@IBOutlet var dairySwitch: UISwitch!

let switchState = NSUserDefaults.standardUserDefaults()


if shrimpSwitch.switch.on{

    switchState.setBool(true, forKey: "shrimpSwitch")
}
else{

    switchState.setBool(false, forKey: "shrimpSwitch")
}

if nutSwitch.on{

    switchState.setBool(true, forKey: "nutSwitch")
}
else{

    switchState.setBool(false, forKey: "nutSwitch")
}

if dairySwitch.on{

    switchState.setBool(true, forKey: "dairySwitch")
}
else{

    switchState.setBool(false, forKey: "dairySwitch")
}

在第一个If语句(shrimpSwitch.on)中,它将显示Expected Declaration。我是在声明所有开关错误吗?任何帮助,将不胜感激。谢谢


问题答案:

问题是您需要将代码放入方法中。您所需要做的就是将其移动到viewDidLoad()或任何其他方法。



 类似资料:
  • 问题内容: 我正在一个小型的单窗格应用程序中管理不同的语言,为每个注释使用不同的字符串数组,并由整数变量“ userLang”索引,然后设置label.text = array [index]。基本代码是: 我不断收到“期望的声明”错误。我曾尝试在引号(而不是数组)中使用简单的字符串作为测试,但仍然遇到相同的错误。我已经在网上搜索过,却没有找到解决问题的任何建议。如果我使用的是“保留”引用,我尝试

  • 问题内容: 编写并运行此代码后,编译器将显示Expected Declaration错误: 问题答案: 之所以会出现此错误,是因为您在类中的错误位置放置了代码,因此将其移至任何函数或viewDidLoad方法中。 您只能在类范围内声明,而不能执行表达式。 它将正常工作。 编辑: 在您的第二个UIViewController只是通过NSUserDefaults这种方式阅读highScore : 因此

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

  • 问题内容: 假设我有一个通用类: 这些声明之间有什么区别? 问题答案: 没有泛型参数就不能存在泛型类型,因此省略泛型类型意味着您希望编译器推断该类型。 在这种情况下,要推断的逻辑类型为。 请注意,这仅适用于您使用了内部声明。它不适用于其他泛型类。 可以在变量声明中使用类似的通用参数推断:

  • 问题内容: 我们可以在Objective-C中声明以下块。 我试图迅速做到这一点,它给错误。 错误:使用未声明的“ completionFunction” 定义: 这该怎么做? 更新: 根据@jtbandes的回答,我可以创建带有多个参数的闭包,例如 问题答案: 在对函数类型的语法是。 请注意,从Swift 3+开始,仅需在输入类型周围加上括号。

  • 问题内容: 我收到此错误消息,说我没有使用变量……但是在我的菜鸟眼中,看起来我在: 谁能指出我对语言的缺失?我认为这与vs 和作用域有关,但我不确定。 问题答案: 在您的for循环声明了一个新的变量,其阴影外。将其变成平原以解决问题。 顺便说一下,为了获得相同的精度和更快的速度,您可以尝试以下实现,该实现一次执行两个步骤: