2012-04-03 6 views
7

Ich bin Following Tutorial von http://gabriel.github.com/gh-unit/docs/appledoc_include/guide_testing.html. Das Problem ist, dass mein Projekt ARC verwendet und GHUnit nicht. Ich habe vorhergehende Fehler gemanagt, aber jetzt sollte ich Bridgecast machen, den ich nie benutzt habe, und ich bin verloren.ARC, überbrückt Besetzung und GHUnit

NSString *string1 = @"a string"; 
GHAssertNotNULL(string1, nil); //error here 

Fehlerbeschreibung: Implizite Konvertierung von Objective-C Zeigertyp 'NSString *' bis C Zeigertyp 'const void *' erfordert eine überbrückte gegossen.

Jede Hilfe willkommen :)

Antwort

11

Da Sie einen NSString vergleichen, sollten Sie den GHAssertNotNil-Check verwenden. Siehe NULL vs nil in Objective-C für weitere Informationen.

So soll Ihr Beispiel lesen:

NSString *string1 = @"a string"; 
GHAssertNotNil(string1, nil); 

ich auch in meinen ARC-Projekten mit GHUnit bemerkt habe, dass die GHUnit main.m Datei den

-fno-objc-arc 

Linker-Flag muss wie zuvor vorgeschlagen wurde .

+0

Guter Fang. Die aktuelle Dokumentation verwendet nur GHAssertNotNull anstelle von GHAsertNotNil, was Probleme mit ARC-Code verursacht. –

1

Sie nur GHUnit Dateien von Automatik Referenzierung (ARC) aus dem Projekt, indem Sie in Build-Phase ausschließen kann -> Compile Sources

und dann Doppelklick auf die Dateien aus GHUnit, erscheint ein Eingabefeld, Paste folgende hinein

-fno-objc-arc 

Diese Dateien aus GHUnit von Automatik ausschließen Referenzierung (ARC).

+1

Das ist eine gute Idee, bis GHUnit ARC nicht implementiert. Jedoch möchte ich immer noch wissen, wie man diese Brücken macht, soweit ich versuche, diese Informationen von einigen ARC-Referenzen zu bekommen. – Vive