-1

NSThreadを使用してメソッドに2つの引数を渡したい。この3番目の答えを使ってみました。andKeys: しかし残念ながら、メソッドが利用できないため、そのコードはうまく機能していませんでした。

   [NSThread detachNewThreadSelector:@selector(DownloadCheckServerPath:DirectoryName:) toTarget:self withObject:"How to pass two objects"];

-(void)DownloadCheckServerPath:(NSString *)serverPath DirectoryName:(NSString *)directoryNameでは、NSThreadを介してSectorでこのメソッドをどのように呼び出す必要がありますか。?

4

2 に答える 2

0

このメッセージ送信によって呼び出されるメソッドに複数の引数を渡すことはできません。回避策:コレクションを使用します。1つの議論で十分です。

- (void)reallyCallMethod:(NSDictionary *)dict
{
    [self downloadCheckServerPath:dict[@"path"] directoryName:dict[@"dir"]];
}

[NSThread detachNewThreadSelector:@selector(reallyCallMethod:)
                         toTarget:self
                       withObject:@{ @"path" : @"/foo/bar", @"dir" : @"baz" }];

また、セレクター名を大文字で始めないでください。それはクラス専用です(そしてそれは本当に醜いですよね?)

于 2013-02-07T07:39:17.387 に答える
0

そのような場合、私は通常NSDictionaryを作成し、それを渡しました。関数では、辞書を読み、必要なすべての要素を取得します。

于 2013-02-07T07:39:30.180 に答える