0

このメソッドをバックグラウンドまたは新しいスレッドで実行する必要があります。performSelectorで2つの引数を渡す方法は?

[self addMessageFromRemoteNotification:userInfo updateUI:NO];

-(void)addMessageFromRemoteNotification:(NSDictionary *)userInfo updateUI:(BOOL)updateUI
{
}
4

3 に答える 3

1

performSelector を使用する必要があり、N 個のパラメーターが必要な場合は、それらを配列または辞書でラップし、呼び出されたメソッドのシグネチャに NSArray または NSDictionary の単一パラメーターを持たせるだけです。プリミティブ型 (int、float など) は、NSNumber でラップする必要があります。

NSArray の例:

- (void) addMessageFromRemoteNotification:(NSArray*)parameters
{
}

...

[self performSelector:@selector(addMessageFromRemoteNotification:)
withObject:@[ obj1, obj2, obj3, @(4.0f)]];

NSDictionary の例:

- (void) addMessageFromRemoteNotification:(NSDictionary*)parameters
{
}

...

[self performSelector:@selector(addMessageFromRemoteNotification:)
withObject:@{ @"prop1": @"prop1value", @"prop2": @(4.0f) }];

幸運を!

于 2013-05-28T16:28:04.503 に答える