在目标c中使用NSthread传递扇区中的多个参数

时间:2013-02-07 07:34:02

标签: ios objective-c nsthread

我想用NSThread将两个参数传递给方法。我尝试使用this third answer。但不幸的是,代码运行不正常,因为andKeys: 方法不可用。

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

那么我应该如何通过NSThread在Sector中调用-(void)DownloadCheckServerPath:(NSString *)serverPath DirectoryName:(NSString *)directoryName这个方法。 ?

2 个答案:

答案 0 :(得分:0)

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

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

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

另外:不要用大写字母开始选择器名称。这只适用于类(而且非常难看,不是吗?)

答案 1 :(得分:0)

在这种情况下,我通常会创建一个NSDictionary并传递它。在函数中,我读了字典并获得了我需要的所有元素。