2012-04-03 8 views
7

Estoy siguiendo el tutorial de http://gabriel.github.com/gh-unit/docs/appledoc_include/guide_testing.html. El problema es que mi proyecto usa ARC y GHUnit no. Logré errores previos, pero ahora debería hacer un reparto en puente, que nunca he usado, y estoy perdido.ARC, molde en puente y GHUnit

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

Descripción del error: La conversión implícita de Objective-C tipo de puntero 'NSString *' a C tipo de puntero 'const void *' requiere un reparto puente.

Cualquier ayuda bienvenida :)

Respuesta

11

Dado que está comparando un NSString, debe usar la comprobación GHAssertNotNil. Consulte NULL vs nil in Objective-C para obtener más información.

Así que su ejemplo será la siguiente:

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

También he notado en mis proyectos arco utilizando GHUnit que el archivo main.m GHUnit necesita la bandera enlazador

-fno-objc-arc 

como se sugirió anteriormente .

+0

Buena captura. La documentación actual solo usa GHAssertNotNull en lugar de GHAssertNotNil, lo que causa problemas con el código ARC. –

1

Puede excluir sólo los archivos que hacen referencia a la automática de GHUnit (ARC) de su proyecto de entrar en fase de construcción -> Fuentes de compilación

y luego haga doble clic en los archivos de GHUnit, aparecerá una caja, pegar siguiente en él

-fno-objc-arc 

Esto excluirá los archivos de GHUnit de referencia automáticos (ARC).

+1

Eso es una buena idea hasta que GHUnit no implemente ARC. Sin embargo, todavía deseo saber cómo hacer estos puentes, tratando de obtener esta información de algunas referencias ARC. – Vive