Opracowuję ramy celu c, które będą używane przez innych programistów.Jak przekazywać argumenty opcjonalnych zależności jako params w funkcji obiektu ramowego c
W tym kontekście chciałbym użyć, jeśli dostępne klasy z innych ram opcjonalnie, jeśli są one dostępne.
Na przykład, w tej chwili używam AdSupport.framework (jeśli jest dostępny - umieszczony przez dewelopera aplikacji) z następującym podejściu:
if (NSClassFromString(@"ASIdentifierManager")) {
NSString adString = [[[NSClassFromString(@"ASIdentifierManager") sharedManager] advertisingIdentifier] UUIDString];
}
Jednak teraz chcę mieć argumenty funkcji publicznych z mojego frameworka, aby dołączyć klasy opcjonalnych zależności i nie jestem w stanie tego zrobić.
Na przykład:
chcę mieć funkcję:
+ (void) sendLocation: (CLLocation *) myLoc;
ale CoreLocation.framework zostaną ewentualnie połączoną a może nie są dostępne dla aplikacji. Jak mogę postępować w podobny sposób z AdSupport.framework powyżej?
Przypuszczałem mógłby zrobić coś takiego:
+ (void) sendLocation: (NSClassFromString(@"CLLocation") *) myLoc;
lub
+ (void) sendLocation: (id) myLoc;
lub
+ (void) sendLocation: (Class) myLoc;
a następnie wydobyć jakoś współrzędne, ale nie był w stanie osiągnąć. Ostatnia opcja (klasa) wydaje się kompilować, ale nie mogę znaleźć sposobu na wyodrębnienie paramerów.
Czy ktoś może w tym pomóc?