Ich habe einige extern
Variablen in @interface
Block meiner .h
Datei deklariert. Sie sind in .m
Datei zugewiesen. In einer Methode meiner @interface
(vorzuziehende Klassenmethode) möchte ich über diese Variablen per Reflexion aufzählen, aber ich habe keine Ahnung, ob das überhaupt möglich ist, und wie ist das? Beispiel meines Codes:Objektiv C Reflexion für C-Typ Vars
Consts.h
extern NSString *MyConst1;
extern NSString *MyConst2;
Consts.m
NSString *MyConst1 = nil;
NSString *MyConst2 = nil;
+ (void)load {
MyConst1 = ...;
MyConst2 = ...;
}
+ (void)someMethod {
// i could use class_copyIvarList for objective c properties/ivars,
// but is it possible to get that MyConts1 and MyConst2 via reflection ?
// I understand, that C have different namespace,
// and I have no experience with it.
}
In C gibt es keine Reflexion. Wenn Sie Über-Werte aufzählen möchten, fügen Sie sie in ein Array ein. Wenn Sie Werte für sie festlegen möchten, listen Sie sie über Zeiger auf. – Sulthan
@Sultan in Array-Anordnung ist offensichtlich. Ich bin daran interessiert, nicht viel doppelten Code zu machen. Vielleicht haben Objc etwas Laufzeitmagie für c Zeug? Es gibt Unterschiede in c vars in der @ Schnittstelle und nicht, also könnten sie irgendwie durch objc reflektiert werden? –
Objective-C macht keine Magie mit C. Objective-C erstellt Objekte, die aus C-Strukturen bestehen, mit zusätzlichen Metadaten, die eine Reflexion an * Obj-C * -Objekten ermöglichen. Aber C ist nur C. – Sulthan