Funfunfun hilft ...
Es gibt zwei Schichteigenschaften Sie können (in jedem Fall, dass Sie über die Schichten zu durchlaufen haben) verwenden:
CALayer.name
„von einigem Layout-Manager verwendet, um eine Laye zu identifizieren r ". Stellen Sie es auf etwas, das garantiert eindeutig ist (z. B. "MyClassName.gradient").
CALayer.style
ist ein Wörterbuch. Sie können Schlüssel verwenden, die nicht von CoreAnimation verwendet werden (z. B. NSMutableDictionary * d = [NSMutableDictionary dictionaryWithDictionary:layer.style]; [d setValue:[NSNumber numberWithBool:YES] forKey:@"MyClassName.gradient"]; layer.style = d;
). Dies kann nützlich sein, um beliebige Daten einer Ansicht zuzuordnen (z. B. den Indexpfad der Zelle, die ein Textfeld enthält ...).
(Ich gehe davon aus, dass [NSDictionary dictionaryWithDictionary:nil]
das leere Wörterbuch nil statt Rückkehr gibt oder eine Ausnahme zu werfen. Die entsprechende Sache für [NSArray arrayWithArray:nil]
wahr ist.)
jedoch die zusätzliche Komplexität des Codes, Leistungseinbußen und Die Wahrscheinlichkeit, es falsch zu machen, überwiegt wahrscheinlich die kleine Verringerung des Speicherverbrauchs. 4 Bytes pro Ansicht ist nicht so viel, wenn Sie eine Handvoll Ansichten haben (und selbst wenn Sie Lasten haben, sind 4 Bytes der Speicher, der von einem einzelnen Pixel verwendet wird!).
Ich hatte Angst davor :( – Rudiger