2012-04-04 50 views
1

當我聲明這樣的方法:編譯錯誤,其接受輸入作爲塊與可變的參數數目

- (void)doAnythingWithThisBlock:(void(^)(NSString *, ... NS_REQUIRES_NIL_TERMINATION))AnythingBlock; 

這是給編譯錯誤:

Expected ')' 

但是當我宣佈它是這樣的:

- (void)doAnythingWithThisBlock:(void(^)(NSString *, ...))AnythingBlock; 

它編譯得很好,並按預期工作

我們不能使用 - NS_REQUIRES_NIL_TERMINATION,同時聲明一個接受輸入爲可變數量參數的塊的方法嗎?

我想它的XCode 4.2

+0

+1你有沒有解決這個問題? – 2013-09-06 07:26:13

+0

嘿..我需要檢查回..這個我問了很久回來.. – Devarshi 2013-09-06 14:04:43

+0

反正你檢查.. NSString.h ..方法聲明的 - (實例類型)initWithFormat:(NSString *)格式..它使用NS_FORMAT_FUNCTION(1,2); ..可能你想看看它;) – Devarshi 2013-09-06 14:05:42

回答

1

我猜NS_REQUIRES_NIL_TERMINATION僅僅是方法聲明1

但是你可以嘗試你的塊的typedef某些類型並將其作爲參數傳遞:可能是鏗鏘意志那就吃吧?

相關問題