【发布时间】:2016-11-23 23:43:48
【问题描述】:
我有一个具有 Int16 属性的实体。
我想保存var userRepsCount = Int(),这是由以下步进方法设置的:
@IBAction func userRepsStepper(_ sender: UIStepper) {
userExerciseRepsCounter.text = Int(sender.value).description
self.userRepsCount = Int(sender.value)
}
我想将它添加到属性中并使用userExercise.reps = userRepsCount 来执行此操作,但是我收到错误
无法将类型“Int”的值分配给类型“Int16”
我的印象是 Int16 可以毫无问题地存储这样的 int?我在这里想念什么?
【问题讨论】:
-
您是否尝试将其强制包装为 Int16(valueHere)?
-
swift 建议 userExercise.reps = Int16(userRepsCount) 但是我还没有看到其他人的代码这样做来保存 Int 并想知道是否有正确的方法来存储它
-
如果它被保存为 Int16,你将不得不像 XCode 建议的那样包装它。然后,每当你需要拉它时,你都需要用 Int(stuff) 包裹它,这样你就可以正常使用它了。很可能 Apple 已将存储值从 Int 更改为 Int16,并且您的教程就在该更新之前。 Swift 更新改变了很多东西。
-
啊,如果这就是答案,我发现奇怪的是,当我只看到代码中使用的 Int 为“Int”时,有各种 Int 样式,包装似乎过于复杂
-
包装很冗长,但不幸的是,swift无法自动转换值!有很多类型的 Int,看...codingexplorer.com/integers-and-numeric-literals-in-swift,您实际上只是在告诉 Swift,它将介于 -32,768 和 32,767 之间