Ich versuche eine grundlegende Warenkorb-App zu erstellen, in der Sie einen Artikel in Ihren Warenkorb legen, die Kosten des Artikels in einem Array speichern und dann das Array anzeigen lassen können Klicken Sie auf "Empfang". Allerdings habe ich jedes Mal „Quittung“ auf meiner App klicken, wird der Simulator stürzt ab und zeigtAnzeige eines Arrays vom Typ Double auf UILabel in Xcode
"Thread1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)
neben meinem Codezeile, die „AllItems + = item“ liest. Wenn jemand irgendwelche Ideen hat, wie ich mein Zahlenfeld in einem UILabel mit einer For-In-Schleife anzeigen kann, lass es mich wissen. Ich werde den Quellcode unten posten. Vielen Dank im Voraus
class ViewController: UIViewController {
var priceOfApple = 1.75
var cart = [Double]()
var total = 0.00
@IBOutlet weak var appName: UILabel!
@IBOutlet weak var Balance: UILabel!
@IBOutlet weak var Instructions: UILabel!
@IBOutlet weak var redApple: UIButton!
@IBOutlet weak var appleInfo: UILabel!
@IBOutlet weak var addToCart: UIButton!
@IBOutlet weak var itemsPurchased: UILabel!
@IBAction func selectedApple(sender: AnyObject) {
Instructions.hidden = true
appleInfo.hidden = false
addToCart.hidden = false
}
@IBAction func purchaseApple(sender: AnyObject) {
cart.append(priceOfApple)
total += priceOfApple
Balance.text = "Balance : \(total)"
Instructions.hidden = false
appleInfo.hidden = true
addToCart.hidden = true
}
@IBAction func viewReceipt(sender: AnyObject) {
redApple.hidden = true
Instructions.hidden = true
itemsPurchased.hidden = false
for item in cart {
var allItems = Double(itemsPurchased.text!)!
allItems += item
allItems = Double(itemsPurchased.text!)!
}
}
}
Der Körper der 'item in cart'-Schleife ist sehr verwirrend. In jeder Iteration erstellen Sie eine neue Variable 'allItems' mit dem Inhalt eines Labels, dann fügen Sie' item' hinzu und schließlich setzen Sie die Variable wieder auf den Inhalt des Labels. Abgesehen von dieser Verwirrung ist entweder 'itemsPurchased.text'' nil' oder der Text kann nicht durch 'Double' dargestellt werden. – vadian
Ich erstelle Variable allItems in jeder Iteration, weil ich möchte, dass alle Elemente im Array angezeigt werden. Gibt es einen besseren Weg, wie ich das machen könnte? – Michael
Es gibt zwei schwerwiegende Probleme mit diesem Code. Das Schlimmste ist, dass die Variable außerhalb des Bereichs der Schleife nicht sichtbar ist und Sie vorherige Werte mit neuen Werten überschreiben. Sie sollten die Variable ** vor ** der Wiederholungsschleife erstellen. Fügen Sie den Code in einen Playground ein und testen Sie ihn. – vadian