Frage

Ich habe gerade erst begonnen Ziel c lernen, ein wenig Java Erfahrung mit und diese Seite hat für die Beantwortung von Lasten meiner Fragen sehr hilfreich gewesen, aber ich habe ein Problem, treffe ich kann nicht ganz begreifen. Theres eine ganze Menge über das Thema gelesen werden, aber ich kann nicht ganz finden, wo ich schief gelaufen habe.

Ich lese diese:

Objective C nicht Klassendatenelemente (von allen Objekten der gleichen Klasse geteilt d-Daten) unterstützen, können sie jedoch durch die Verwendung des statischen Modifikator emuliert werden. Zum Beispiel würde eine statische int Zählvariable in der Implementierungsdatei der Klasse Employee erklärt in allen Mitarbeitern Objekte eine einzelne Integer-Variable Zahl genannt teilen.

Aber ich scheine mit dieser Funktionalität gelandet zu haben, ohne zu versuchen ... und ich will es nicht!

Das Szenario ist, dass ich eine Kategorie von UIImageView habe, in dem ich declareing eine globale Variable (knapp unterhalb meiner @implementation Linie) ein bestimmtes Ereignis zu zählen und habe es in meinen neuen Methoden verwendet.

@implementation UIImageView (Draggable)    
int touchesCount = 0;    
// methods ...

Alles funktioniert gut, wenn ich einen einzigen UIImageView haben. Jedoch, wenn ich eine zweite Instanz von UIImageView dieser Zählvariable zwischen den beide gibt eine unerwartetes Verhalten geteilt wird.

erstellen und hinzufügen

Abbildung kann es relevant sein, zu zeigen, wie ich die Objekte bin erstellen:

UIImageView *myImageView = [[UIImageView alloc] initWithFrame:myImageRect]; 
UIImageView *myImageView2 = [[UIImageView alloc] initWithFrame:myImageRect];
// ... (create, manipulate and set 2 images to the 2 views)
[self.view addSubview:myImageView];
[self.view addSubview:myImageView2];

Anders als das, irgendwelche Vorschläge auf, wo ich könnte schief gehen werden?

Danke!

Edit:. ein wenig illustrieren mehr, was ich mit den zwei Ansichten zu tun, selbst in diesem Fall ist ein Viewcontroller

War es hilfreich?

Lösung

Was Sie suchen sind Instanzvariablen, aber Kategorien können nicht diejenigen an eine Schnittstelle Apple- :

Beachten Sie, dass eine Kategorie keine zusätzliche Instanzvariablen für die Klasse erklären kann; es enthält nur Methoden.

Sie sollten eine href werden mit <= "https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocObjectsClasses.html#//apple_ref/doc/uid/TP30001163- CH11-BAJCCBHC“rel = "nofollow noreferrer"> Vererbung statt:

@interface MyView : UIImageView {
    int touchesCount;
}
// ...
@end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top