Ich bin neu in iPhone Entwicklung und ich habe eine Frage, die eine sehr einfache Antwort haben kann. Ich versuche, einer Ansicht Schaltflächen hinzuzufügen, und diese Schaltflächen sind einer benutzerdefinierten Klasse zugeordnet, die ich definiert habe. Wenn ich die Schaltflächen zur Ansicht hinzufüge, würde ich gerne wissen, welcher Klasse diese Schaltflächen entsprechen. Dies ist, weil, wenn ich den Knopf drücke, ich einige Informationen über die Klasse erhalten muss, aber der Empfänger der Nachricht ist eine andere Klasse. Ich konnte keine Informationen über einen Fehler finden, den ich im Internet erhalte. Das Problem, das ich habe ist, dass ich versuche, eine NSMutableDictionary zu schaffen, wo die Schlüssel vom Typ UIButton * sind und die Werte sind mein benutzerdefinierter Typ:NSMutableDictionary mit UIButton * als Schlüssel - iPhone Entwicklung
// create button for unit
UIButton* unitButton = [[UIButton alloc] init];
[sourceButtonMap setObject:composite forKey:unitButton];
Natürlich ist der sourceButtonMap in der Klasse definiert und initialisiert in der init-Funktion als sourceButtonMap = [[NSMutableDictionary alloc] init];
der Fehler ich erhalte, wenn ich versuche, das Schlüssel-Wert-Paar hinzuzufügen ist:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIButton copyWithZone:]: unrecognized selector sent to instance 0x3931e90'
Ist das passiert, weil ich UIButton * nicht als Schlüssel speichern kann? Kann mir jemand zeigen, warum ich diesen Fehler bekomme? Vielen Dank an alle,
aa
Das ist, was ich dachte, so haben Sie Vorschläge, wie dieses Problem zu lösen? Bei einer UIButton muss ich die benutzerdefinierte Klasse erhalten, die diese Schaltfläche darstellt. Wenn ich kein Wörterbuch benutzen kann, muss es einen anderen Weg geben, dies zu tun. Ich kann ein Array nicht verwenden, da sich mehrere UIButtons auf dasselbe Objekt beziehen können. Gibt es eine Möglichkeit, der Schaltfläche die ID der darstellenden Klasse zu geben? Oder etwas ähnliches? –