Domanda

Ho appena iniziato l'apprendimento c obiettivo avere un po 'di esperienza Java e questo sito è stato molto utile per rispondere a carichi di mie domande, ma ho colpito un problema non posso abbastanza Fathom. C'è una discreta quantità da leggere sul tema, ma non riesco a trovare dove ho sbagliato andato.

ho letto questo:

  

Objective C non supporta componenti di dati di classe (cioè i dati condivisi da tutti gli oggetti della stessa classe), tuttavia, possono essere emulati attraverso l'uso del modificatore statico. Ad esempio, dichiarazione di una variabile conteggio static int nel file di implementazione della classe Employee comporterebbe per i dipendenti oggetti condivisione di un unico variabile intera chiamata count.

Ma mi sembra di aver finito con questa funzionalità senza cercare ... e io non voglio!

Lo scenario è che ho una categoria di UIImageView in cui sto declareing una variabile globale (appena sotto la mia linea @implementation) per contare un evento particolare e lo hanno usato nei miei nuovi metodi.

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

Tutto funziona bene se ho un solo UIImageView. Tuttavia quando ho creare e aggiungere una seconda istanza di UIImageView questa variabile conteggio viene condiviso tra il comportamento imprevisto due dando.

La figura che può essere rilevante per mostrare come sto creando gli oggetti:

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];

Oltre a questo, qualche suggerimento su dove potrei andare storto?

Grazie!

Modifica:. Per illustrare un po 'più di quello che sto facendo con i 2 punti di vista, di sé in questo caso è un ViewController

È stato utile?

Soluzione

Quello che state cercando sono le variabili di istanza, ma le categorie non possono aggiungere quelli a un'interfaccia Mela :

  

Si noti che una categoria non può dichiarare variabili di istanza aggiuntive per la classe; comprende solo metodi.

Si deve usare eredità invece:

@interface MyView : UIImageView {
    int touchesCount;
}
// ...
@end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top