我想用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
这个方法。 ?
答案 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并传递它。在函数中,我读了字典并获得了我需要的所有元素。