Je suis très nouveau nouveau à Swift donc je m'excuse d'avance si c'est une question "bête". Je travaille juste sur un script de terrain de jeu pour générer des objets aléatoires, dans ce cas, des armes. Lorsque j'exécute mon code, j'obtiens cette erreur: erreur: L'exécution a été interrompue, raison: EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, sous-code = 0x0). Ce que j'essayais de faire est de maintenir une instance d'une structure (qui est handle) dans ma classe normalBladeType dans la variable weaponHandle. J'ai essayé de faire des recherches sur ce sujet mais je n'ai pas encore trouvé de réponse. Toute suggestion sera appréciée. Pour tout ce que je sais, je vais peut-être aller à ce sujet tout faux.Swift - comment stocker une instance de struct dans une propriété de classe
Merci,
mon code:
//: Playground - noun: a place where people can play
import Cocoa
let handleWoods = ["White Ash", "Oak", "White Oak", "Elm", "Maple","Walnut", "Cherry", "Rosewood", "Ash", "Hickory", "Birch", "Hemlock", "Cedar", "Pine"]
let handleGrips = ["Leather", "Buckskin", "Sharkskin", "Goat Skin", "Deerskin", "Elk Skin", "Rayskin", "Snakeskin", "Silk Cord", "Cotton Cord"]
let gripQualities = ["Simple", "Interwoven", "Ornate", "Smooth", "Thin", "Thick", "Ruff", "Worn"]
func returnRandomItem(_ list: [Any])-> Any {
return list[Int(UInt32(list.count))]
}
struct handle {
var name: String
var value, grip: Int
var weight: Double
var withGrip: Bool
init(withGrip: Bool) {
self.weight = 0.25
self.withGrip = withGrip
let handleNameWithWood = "\(returnRandomItem(handleWoods)) Handle"
if self.withGrip {
let randGrip = "\(returnRandomItem(gripQualities)) \(returnRandomItem(handleGrips)) Grip)"
self.name = "\(randGrip) (\(handleNameWithWood))"
self.grip = 75
self.value = 2
} else {
self.name = handleNameWithWood
self.grip = 50
self.value = 1
}
}
func description() {
print("Handle Description \(self.name)")
}
}
class weapon {
var TypeOfWeapon: String
var weaponHandle: handle
init(weaponType: String, doesHaveGrip: Bool) {
self.TypeOfWeapon = weaponType
self.weaponHandle = handle(withGrip: doesHaveGrip)
}
}
class normalBladeType: weapon {
init() {
super.init(weaponType: "normalBladeType", doesHaveGrip: false)
}
func description() {
print("TypeOfWeapon: \(self.TypeOfWeapon)")
print("TypeDescription: normal hilt (guard - handle - pommel) + straight blade")
}
}
var foo = normalBladeType()
foo.description()
Modifiez votre question pour inclure le code source de 'returnRandomItem'. –