7

I'm followinng tutorial from http://gabriel.github.com/gh-unit/docs/appledoc_include/guide_testing.html. The problem is that my project uses ARC and GHUnit doesn't. I managed previous errors, but now i should do bridged cast, that i've never used, and i'm lost.

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

Error description: Implicit conversion of Objective-C pointer type 'NSString *' to C pointer type 'const void *' requires a bridged cast.

Any help welcome :)

Brad Larson
  • 169,393
  • 45
  • 393
  • 567
Nat
  • 10,911
  • 8
  • 53
  • 102

2 Answers2

11

Since you are comparing an NSString, you should use the GHAssertNotNil check. See NULL vs nil in Objective-C for more info.

So your example should read:

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

I've also noticed in my ARC projects using GHUnit that the GHUnit main.m file needs the

-fno-objc-arc

linker flag as was suggested previously.

Community
  • 1
  • 1
joseph.hainline
  • 23,331
  • 16
  • 51
  • 70
  • Good catch. The current documentation just uses GHAssertNotNull instead of GHAssertNotNil, which causes issues with ARC code. – Paul Solt Jul 24 '12 at 15:38
1

You can exclude only GHUnit files from automatics referencing(ARC) from your project by going into Build Phase -> Compile Sources

and then double click on the files from GHUnit, a box will appear, paste following into it

-fno-objc-arc

This will exclude the files from GHUnit from automatics referencing(ARC).

Haris Hussain
  • 2,451
  • 3
  • 23
  • 38
  • 1
    Thats a good idea until GHUnit don't implement ARC. However i still wish to know how to do these bridges, as far trying to get this info from some ARC-references. – Nat Apr 03 '12 at 10:58