2012-04-03 48 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