iOS 提供对象统计信息,而无需在代码中包含数据



我正在编写一款iOS游戏,其中我有一个播放器,根据其名称具有不同的统计数据。我目前只是把它放在我的代码中:

switch name {
case "chicken":
player.size = 20
player.weight = 5
...

但是,将数据放入代码中感觉不对,如果我必须为大约 25 个不同的玩家执行此操作,那就很多工作了。有没有更好的方法可以做到这一点?

正如其他人在注释中所述,您可以将此数据存储在代码中。不过,您可能希望使用protocol。以下是我在 Swift Playground 中整理的一些快速内容,您可以将其用作参考。

import UIKit
protocol PlayerProtocol {
var name: String { get }
var size: Int { get }
var weight: Int { get }
}
struct Chicken: PlayerProtocol {
var name: String = "Chicken"
var size: Int = 20
var weight: Int = 5
}
struct Turkey: PlayerProtocol {
var name: String = "Turkey"
var size: Int = 30
var weight: Int = 10
}
class MyClass {
func myFunc(player: PlayerProtocol) {
print(player.size)
}
}
MyClass().myFunc(player: Chicken())  // prints "20"

您可以在此处阅读一些协议:

  • https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html
  • https://www.raywenderlich.com/148448/introducing-protocol-oriented-programming

最新更新