簡體   English   中英

使用NSInvocation setArgument:從NSArray返回值

[英]Using NSInvocation setArgument: with value returned from NSArray

我有以下問題。

我有一個NSArray值,我需要遍歷並將值設置為NSInvocation對象的相應參數。 考慮以下代碼:

NSArray *args = @[@"test"];

后來我想做些類似的事情:

for ( i = 0; i < [args count]; i++)
{
    [invocationObj setArgument: [args objectAtIndex: i] atIndex: i+2];
}

但這不起作用。 它給出以下警告:

Implicit conversion of Objective-C pointer type 'id' to C pointer type 'void *' requires a bridged cast

調用對象是動態的(對於目標/選擇器和args),因此當我設置各個invocationObj的參數時,我不知道args數組的內容。 有什么辦法可以實現?

您需要將指針位置傳遞給setArgument:atIndex: 具體來說,這部分來自文檔

當參數值是一個對象時,將指針傳遞到應該從中復制對象的變量(或內存):

所以試試這個...

id argument = [args objectAtIndex: i];
[invocationObj setArgument:&argument atIndex: i+2];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM