,如果我有一個功能如何將多個參數傳遞給線程?
-(void)setName:(NSString *)name setAddress:(NSString *)address
{
}
我怎麼能叫上述功能
[self performSelector:<#(SEL)#> withObject:<#(id)#> afterDelay:<#(NSTimeInterval)#>];
,如果我有一個功能如何將多個參數傳遞給線程?
-(void)setName:(NSString *)name setAddress:(NSString *)address
{
}
我怎麼能叫上述功能
[self performSelector:<#(SEL)#> withObject:<#(id)#> afterDelay:<#(NSTimeInterval)#>];
使用的NSDictionary作爲參數,你必須定義函數接受字典
[self performSelector:@selector(yourSelector:) withObject:theDictionary afterDelay:<#(NSTimeInterval)#>];
然後你就可以在詞典
獲取相應的數據賦值你應該使用的NSArray對象。在NSArray對象中添加參數並傳遞該對象。
使用NSArray是一個壞主意,因爲您必須知道參數的排序。最好使用NSDictionary(如Hanon所建議的),實際上這是Apple框架如何操作,UserInfo在通知等方面。 –
@SimonLee我同意你的意見。 –
嘗試將對象包裝到另一個自定義對象/ NSArray/NSDictionary中。事情是這樣的:
NSArray *arrayObjects = [NSArray arrayWithObjects:name, address, nil];
[self performSelector:@selector(sel:) withObject:arrayObjects afterDelay:delay];
傳遞一個指向包含你想給線程的參數的結構實例的指針。 – Polynomial
爲什麼你想將結構作爲參數傳遞給線程,而不是使用類成員來處理線程? – AlexTheo