解開在我的項目,我有這樣的功能:包裹及與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