Sie können alle Daten auf jedes Objekt anhängen ein Associative Reference verwenden. Dies ist ein sehr praktischer Ansatz. Es behandelt sogar die Speicherverwaltung korrekt. Ich verwende manchmal eine Kategorie, um diese zu umbrechen, damit ich neue Eigenschaften für eine vorhandene Klasse erstellen kann. Zum Beispiel möchte ich in einem Projekt, dass jeder View-Controller etwas über ein spezielles Label weiß (wie sie alle über navigationController
wissen). Ich mache es so:
@interface UIViewController (MYSpecialViewController)
@property (nonatomic, readwrite, strong) UILabel *specialLabel;
@end
@implementation UIViewController (MYSpecialViewController)
static const char kMySpecialLabelKey;
- (UILabel *)specialLabel
{
return objc_getAssociatedObject(self, &kMySpecialLabelKey);
}
- (void)setSpecialabel:(UILabel *)value
{
objc_setAssociatedObject(self, &kMySpecialLabelKey, value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
@end
Sie können ein einfaches Arbeitsbeispiel finden ein UIAlertView
im iOS5 mit: PTL Beispielcode für Chapter 3.
+1 Ich wollte das gleiche sagen. :) – lnafziger