2012-04-03 8 views
7

Jestem samouczek od http://gabriel.github.com/gh-unit/docs/appledoc_include/guide_testing.html. Problem polega na tym, że mój projekt wykorzystuje ARC, a GHUnit tego nie robi. Poradziłem sobie z poprzednimi błędami, ale teraz powinienem zrobić bridged cast, którego nigdy nie używałem i jestem zagubiony.ARC, mostkowane obsady i GHUnit

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

Opis błędu: niejawna konwersja z Objective-C typu wskaźnika 'NSString *' do typu C wskaźnik 'const void *' wymaga zmostkowany obsady.

Każda pomoc mile widziane :)

Odpowiedz

11

Ponieważ porównujesz NSString, powinieneś użyć sprawdzenia GHAssertNotNil. Aby uzyskać więcej informacji, patrz NULL vs nil in Objective-C.

Więc przykład powinien brzmieć:

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

Ja również zauważyłem w moich projektach ARC korzystających GHUnit że plik main.m GHUnit potrzebuje Linker flagę

-fno-objc-arc 

jak sugerowano wcześniej .

+0

Dobry połów. Bieżąca dokumentacja używa tylko GHAssertNotNull zamiast GHAssertNotNil, co powoduje problemy z kodem ARC. –

1

Można wykluczyć tylko te pliki GHUnit z automatyką odwołujących (ARC) z projektu przez wchodząc budowy Fazy -> Skompiluj Źródła

a następnie kliknij dwukrotnie na plikach z GHUnit, pojawi się okno, wklej do niego następujący

-fno-objc-arc 

Pozwoli to wykluczyć pliki z GHUnit od automatyki przedstawieniu (ARC).

+1

To dobry pomysł, dopóki GHUnit nie wdroży ARC. Jednak nadal chcę wiedzieć, jak wykonać te mosty, próbując uzyskać te informacje z niektórych odniesień ARC. – Vive