解开在我的项目,我有这样的功能:包裹及与NSValue
- (void)doSomething:(NSError**)error {
...
}
我需要使用功能performSelector:onThread:withObject:waitUntilDone:,像这样来调用另一个线程此功能:
[self performSelector:@selector(doSomething:) onThread:anotherThread withObject:??? waitUntilDone:NO];
但功能参数类型为NSError**
。我正在考虑重构功能-(void)doSomething:
的参数类型从NSError**
到NSValue*
并通过NSValue*
类型作为参数。
这意味着,我需要包裹&error
(其为NSError **
类型)转换成NSValue
并将其传递作为参数,以后解开它。如何包装&解开NSError**
与NSValue
类?
为什么你需要将'NSError'包装在'NSValue'中? – rmaddy
我想包装'NSError **'并传递包装的NSValue作为段,然后调用performSelector:withObject, –
1)为什么你需要用'NSValue'封装NSError',以便将它传递给'performSelector :withObject:'?没有必要包装它。 2)为什么你需要使用'performSelector:withObject:'?总是有比这更好的方法。我建议用更具体的细节来更新你的问题,说明你真正需要做什么,这样人们可以提供更好的建议。 – rmaddy