2012-04-03 53 views
7

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

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

错误说明:Objective-C的指针型 '的NSString *' 到C指针类型 'const的空隙*' 的隐式转换需要一个桥接铸造。

任何帮助,欢迎:)

回答

11

由于您正在比较NSString,您应该使用GHAssertNotNil检查。有关更多信息,请参阅NULL vs nil in Objective-C

所以,你的例子应该阅读:

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

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

-fno-objc-arc 

连接标志作为先前建议。

+0

好的。当前文档只使用GHAssertNotNull而不是GHAssertNotNil,这会导致ARC代码出现问题。 – 2012-07-24 15:38:48

1

您可以通过进入 构建阶段排除自动化在工程中引用(ARC)仅GHUnit文件 - >编译源代码

,然后双击从文件GHUnit,将出现一个框,粘贴以下进去

-fno-objc-arc 

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

+1

这是一个好主意,直​​到GHUnit不实施ARC。不过,我仍然想知道如何做这些桥梁,尽量从一些ARC引用中获取这些信息。 – Vive 2012-04-03 10:58:32