2016-04-26 6 views
0

Ich arbeite an einem Framework, das natürlich von anderen Frameworks abhängt. Um meine Benutzer Integrationsprozess zu helfen habe ich ein Makro hinzugefügt, die sie warnen würde, wenn bestimmte Rahmenbedingungen gebunden sind:Xcode: Testen, ob das Framework mit dem Projekt verknüpft ist

#ifndef _SYSTEMCONFIGURATION_H 
#warning "The SystemConfiguration framework not found in project or not included in precompiled header, please make sure that it does" 
#endif 

Problem ist, ich sehe diese Warnung auch wenn ich SystemConfiguration mein Projekt verknüpfen.

Was mache ich falsch? Vielen Dank!

Antwort

0

Benutzer sollte #import <SystemConfiguration/SystemConfiguration.h> irgendwo in seiner App, bevor Sie Ihre Framework-Header. _SYSTEMCONFIGURATION_H ist nur eine Präprozessor-Direktive, in SystemConfiguration.framework Interna deklariert, so müssen Sie es Header einfügen, nur binary Verknüpfung ist nicht genug.

+0

Vielen Dank, aber es wirft ein anderes Problem auf: Wenn ich den Regenschirm Header importieren und ich SystemConfiguration aus meiner Test-App aufheben, bekomme ich keinen Fehler was auch immer. – Yotam

+0

@Yotam, wird Ihr Framework auf SystemConfiguration weitergeleitet? Dann könnten Sie es einfach mit SystemConfiguration verbinden und Sie können loslegen. Die Verlinkung erfolgt nach der Kompilierung, daher hat der Compiler keine Ahnung, welche Frameworks nach der Ausführung verknüpft werden. Daher gibt es keine Möglichkeit, dies bei der Kompilierung zu überprüfen. Es gibt auch eine Option, um es zur Laufzeit zu prüfen, damit so etwas wie: '' 'BOOL isFrameworkLoaded = (! NSClassFromString (@ "MyClassNameFromTheFramework") = nil);' '' –

+0

@ andery.s würde ich wie Xcode, um einen Link-Zeit-Fehler auszulösen, wenn ich kann. Ich habe 'NSClassFromString' verwendet, wie Sie es mit einigen Frameworks vorgeschlagen haben, aber in Frameworks wie SystemConfiguration habe ich keine Klassen definiert, selbst nachdem ich alle Header-Dateien durchsucht habe. Es sind hauptsächlich C-Strukturen und Variablen. – Yotam

Verwandte Themen