2017-11-23 3 views
-2

Ich habe einen kleinen Swift-Code entwickelt, der die Likes einer Person anzeigt. Also habe ich einen Code, der auf einer While-Schleife basiert, um die Anzahl der Likes in eine Summe aufzuteilen. Dann habe ich eine Funktion erstellt, die eine kurze Phrase einschließlich des Ergebnisses dieser Schleife anzeigt. Nun, in meinem View-Controller möchte ich diese Display-Funktion auf einem Label ausführen, das ich erstellt habe, um endlich alle Likes auf dem Bildschirm anzuzeigen. Allerdings kann ich nicht verstehen, wie ich die Anzeigefunktion auf dem Etikett ausführen und anzeigen lassen sollte, ohne dass ich zuerst auf einen Knopf geklickt habe. Denken Sie daran, dies ist mein zweiter Tag des Codierens, mit nur Erfahrung in der grundlegenden Syntax von Java. HierWie kann ich diese Funktion basierend auf einem Array verwenden, um eine Bezeichnung zu ändern, die das gesamte Array in einer anderen Klasse anzeigt?

ist der erste Code

import UIKit 

class likesObject: NSObject { 
// This is where I created the loop to solve for the total amount of likes 
func complimentsLikeTotal() -> Void { 
    let monthlyLikes = [20, 15, 13, 32, 14, 38] 
    var totalLikes = 0 
    var runTotal = 0 

    while runTotal < monthlyLikes.count { 
     totalLikes += monthlyLikes[runTotal] 
     print(totalLikes) 
     runTotal += 1 
    } 

} 
/* 
This is where I created the function to return how many all time likes there are in a phrase 
I want to use this function in the viewcontroller code on the label 
*/ 
func display() -> String { 
    return "\(complimentsLikeTotal) all time likes" 
} 

} 

Hier wird die View-Controller-Code

import UIKit 

class ViewController: UIViewController { 
@IBOutlet weak var inputLikesLabel: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Here is where I don't know what to do with display and how to link it with the label 
    self.inputLikesLabel.text = display 

} 

} 
+0

Was genau ist das Problem? Ist 'self.inputLikesLabel.text = display" 'nicht aktualisiert den Etikettentext? – TNguyen

Antwort

1

Wahrscheinlich suchen sie etwas wie folgt aus: (bitte den Namen der Klasse mit Kapital gemäss Konvention machen beginnen)

var likesObject = LikesObject() 
likesObject.complimentsLikeTotal() 
let display = likesObject.display() 
self.inputLikesLabel.text = display 

Ich nehme an, dass die LikesObject-Klasse auch einige globale Variablen definiert hat ed, um die Daten zu halten.

Ps.s. In swift ist es nicht notwendig, den void-Rückgabewert explizit anzugeben, wenn Sie ihn weglassen, bedeutet der Compiler void.

+0

Ich schätze die Hilfe, aber es ist nicht voll funktionsfähig. Wenn ich es auf dem Simulator ausführen, zeigt der Bildschirm: (Funktion) alle Zeit mag. Was soll ich jetzt tun? –

+1

That uns, da ComplimentsKikeTotal nichts zurückgibt (void). Wenn Sie dies beheben möchten, ändern Sie den Rückgabetyp zu Int und geben Sie insgesamt Likes oder welche die gleiche Nummer ist. –

+0

Es funktionierte, fand ich auch ein kleiner Fehler, den der Computer nicht innerhalb der Anzeigefunktion aufnahm Ich schrieb \ (complendsLikeTotal) anstelle von \ (complendsLikeTotal()) was der Hauptfehler war –

Verwandte Themen