würde Ich mag eine Eigenschaft auf UITableView in einer Klasse-Erweiterung hinzuzufügen:eine Eigenschaft in iOS Klassenerweiterung definieren
@interface UITableViewController()
@property NSString *entityString;
@end
Dann importiere ich die Verlängerung und dann verwende ich entityString Eigenschaft in einer Unterklasse von UITableViewController:
@implementation CustomerTableViewController
- (void)viewDidLoad {
self.entityString = @"Customer";
...
[super viewDidLoad];
}
...
Apple documentation sagt:
the compiler will automatically synthesize the relevant accessor methods (...) inside the primary class implementation.
Aber wenn ich zu ex versuchen Ich bekomme diesen Fehler:
-[CustomerTableViewController setEntityString:]: unrecognized selector sent to instance 0x737b670
Was mache ich falsch? Vielleicht kann die Eigenschaft nicht auf Unterklassen zugreifen?
Kann nicht Ivars zur Klassenerweiterung hinzugefügt werden oder hängt das vom verwendeten Compiler ab? – tiguero
Sie können Ivars und Eigenschaften in Klassenerweiterungen deklarieren, aber der Speicher für solche wird nicht erstellt, es sei denn, die Erweiterung wird vom Compiler vor der Kompilierung der @implementation der Klasse erkannt. – bbum
Danke für die Klärung - ich habe nicht bemerkt, dass alazaro tatsächlich eine Klassenerweiterung für eine Framework-Klasse verwendet hat – tiguero