• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[Objective-C] Klassenmethoden mit Buttons verknüpfen

podoi17

Erdapfel
Registriert
22.04.16
Beiträge
4
Hallo,
ich bin ein Beginner und habe eine Frage, bei der ich nicht weiter kommen. Ich will einen Taschenrechner (als Übung) programmieren, bei dem ich die Klasse Addition erschaffen habe.
Code:
klasse.h
@property (assign) int laenge;
@property (assign) int breite;

-(int) ergebnis;
Code:
klasse.m
@synthesize breite;
@synthesize laenge;

-(int) ergebnis{
    return laenge + breite;

Code:
appDelegate.m
Addition * addition1 = [[Addition alloc]init ];
    addition1.laenge = ??   
    addition1.breite = ??
    NSLog(@"Das Ergebnis ist %d",[addition1 ergebnis]);

Wie schaffe ich, dass die Eigenschaften des Objektes auf die Eingaben von den Textfields zugreift?
Wie schaffe ich es, dass der der Button, für die Addition auf die Methode der Klasse Addition zugreift?
Danke im voraus =)
 

podoi17

Erdapfel
Registriert
22.04.16
Beiträge
4
Hey danke, ne hab vorher noch nicht programmiert.
Anscheinend bin ich auch noch nicht weit genug, um mit den Hinweisen eine Lösung zu erarbeiten. Ich hab schon irgendwie verstanden, dass der Button ein target auswählen muss. Für mein verständnis, ist das target die Methode der Klasse Addition. Aber wie genau schreibe ich das ?
 
Zuletzt bearbeitet:

KALLT

deaktivierter Benutzer
Registriert
12.11.08
Beiträge
1.523
Hey danke, ne hab vorher noch nicht programmiert.
Anscheinend bin ich auch noch nicht weit genug, um mit den Hinweisen eine Lösung zu erarbeiten. Ich hab schon irgendwie verstanden, dass der Button ein target auswählen muss. Für mein verständnis, ist das target die Methode der Klasse Addition. Aber wie genau schreibe ich das ?

Du musst den Button im Interface Builder mit gedrückter Control-Taste anklicken (Taste gedrückt halten) und den ‘Faden’ in deinen Code ziehen. Dort wird dann automatisch eine IBAction-Methode generiert. (Dasselbe für das TextField, da wird dann ein IBOutlet generiert.) Das kannst du am Besten machen indem du Interface Builder und die Klasse nebeneinander anzeigst mit dem Assistant Editor. Vorher musst du aber schauen, dass View Controller im Interface Builder und die Klasse mit einander verbunden sind. Das kannst du im Identity Inspector von Interface Builder einstellen, wenn du den View Controller ausgewählt hast.

Das muss man wirklich einmal gesehen haben, bevor man es versteht. Du solltest dir mal ein paar Video-Tutorials anschauen. Ich kann dir dazu den kostenlosen Anfängerkurz von Udacity.com empfehlen (nennt sich ‘Intro to iOS Development with Swift’). Dort zeigen sie dir die Basics von Xcode, Interface Builder und Swift. Ansonsten gibt es einen iTunes-U-Kurs von Stanford University (auch kostenlos, im iTunes Store) bei dem dir im ersten Video auch schon viel dazu gezeigt wird (der Kurs selbst hat aber ein höheres Niveau und ist weniger für Anfänger geeignet). Die haben letzte Woche einen neuen Kurs gestartet für iOS 9, aber der von iOS 8 ist auch noch verfügbar. Nennt sich ‘Developing iOS 9 Apps with Swift’. Ich fand die super hilfreich und sie sind auch nicht zu lang oder kompliziert.
 

podoi17

Erdapfel
Registriert
22.04.16
Beiträge
4
Hey danke,
wie ich storyboard mit dem Viewcontroller verbindet weiß ich (zumindest denke ich es^^). ALso ich habe im Storyboard 3 Textfields und ein button erschaffen. Für die 1. Zahl für die 2. Zahl und für das Ergebnis als Ausgabe. Und der Button für die Addition. Dann wie oben gezeigt die Klasse für die Addition deklariert. Durch deine beiden Links hab ich die addTarget funktion entdeckt.
in der viewController.m datei hab ich dann folgendes geschrieben. Haut aber iwie noch nicht ganz hin, da er mir sagt use of undeclared identifier 'addTarget'
Code:
- (IBAction)ergebnis:(id)sender {
    -(void)addTarget = (id)_ergebnis;
Also wie kann ich mit dem Button für die Addition direkt auf die Methode 'ergebnis' direkt zugreifen? Das muss doch iwie möglich sein =)?