Objective C Äquivalent der Variablenvariablen von PHP [duplizieren]

7

In PHP und JavaScript können Sie eine Variable dynamisch verwenden, indem Sie eine andere Variable als Teil ihres Namens verwenden. Ich möchte kein Array als Teil der Lösung verwenden. Kann dies in Ziel C erreicht werden? Ich würde gerne so etwas machen:

%Vor%     
james_womack 17.02.2010, 18:30
quelle

2 Antworten

21

Kurze Antwort: Nein.

Lange Antwort: So ähnlich.

  1. Sie können ein Array verwenden, Ihre Variablen darin speichern und darin indizieren.
  2. Wie # 1, wenn Ihre Objekte tatsächlich UI-Elemente sind und Sie nicht eine ganze Menge IBOutlets wollen, dann verwenden Sie stattdessen IBOutletCollection .
  3. Sie können ein Wörterbuch verwenden, Ihre Variablen als Werte speichern und nach Schlüsseln suchen.
  4. Sie können alle Ihre Variablen als @property deklarieren und dann [self valueForKey:] verwenden, um sie nach Namen zu durchsuchen.
  5. Sie können den Namen des ivars als Zeichenfolge erstellen und dann etwas wie object_getInstanceVariable() , um dessen Wert direkt abzurufen (dies ist ähnlich wie # 3, außer dass Sie es nicht als @property deklarieren müssen). Das ist übermäßig kompliziert und ist normalerweise ein viel größerer Hammer, als du wirklich brauchen wirst.
  6. Wenn Sie mit Ansichten arbeiten, können Sie jeder Ansicht ein eindeutiges Tag zuweisen und es dann über [superview viewWithTag:aTag] abrufen. Ich empfehle diesen Ansatz nicht.

EDIT: Beachten Sie, dass dies nur mit Instanzvariablen funktioniert. Dies funktioniert nicht mit globalen / statischen Variablen.

    
Dave DeLong 17.02.2010, 19:05
quelle
0

Nein. Sie können der Ansicht jedoch ein Tag zuweisen und -viewWithTag: verwenden.

    
kennytm 17.02.2010 18:33
quelle

Tags und Links