- [NSThread
- detachNewThreadSelector:@selector(_detachNewThreadData:)
- toTarget:self
- withObject:[[[ProgressData alloc]
- initWithSelector:selector
- target:target
- object:object
- ] autorelease]
- ];
+ NSInvocation *invocation([NSInvocation invocationWithMethodSignature:[target methodSignatureForSelector:selector]]);
+ [invocation setTarget:target];
+ [invocation setSelector:selector];
+ _assert(object == nil);
+
+ [NSThread detachNewThreadSelector:@selector(_detachNewThreadInvocation:) toTarget:self withObject:invocation];