-1

我想使用 NSThread 将两个参数传递给方法。我尝试使用这第三个答案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

您不能将多个参数传递给此消息发送调用的方法。解决方法:使用集合。一个论据绰绰有余。

- (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 回答