ARC,桥接演员和GHUnit

时间:2012-04-03 10:03:28

标签: objective-c automatic-ref-counting gh-unit

我正在关注http://gabriel.github.com/gh-unit/docs/appledoc_include/guide_testing.html的教程。问题是我的项目使用ARC而GHUnit没有。我管理过以前的错误,但现在我应该做桥接演员,我从来没用过,而且我迷路了。

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

错误描述:将Objective-C指针类型'NSString *'隐式转换为C指针类型'const void *'需要桥接转换。

欢迎任何帮助:)

2 个答案:

答案 0 :(得分:11)

由于您要比较NSString,因此应使用GHAssertNotNil检查。有关详细信息,请参阅NULL vs nil in Objective-C

所以你的例子应该是:

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

我在使用GHUnit的ARC项目中也注意到GHUnit main.m文件需要

-fno-objc-arc

链接器标志,如前所述。

答案 1 :(得分:1)

您可以通过进入,从项目中仅从自动引用(ARC)中排除GHUnit文件 构建阶段 - >编译来源

然后双击GHUnit中的文件,将出现一个框,将其粘贴到其中

-fno-objc-arc

这将从自动引用(ARC)中排除GHUnit中的文件。