4

withObjectを使用しますか?もしそうなら、私はただ合格することができますか、NSNumberと言いますか?

メソッドのシグネチャにどのように表示されますか?

- (void)methodName:(NSTimer *)timer withObject:(NSNumber *)value {}
4

3 に答える 3

10

複数のデータオブジェクトを1つにカプセル化するNSArrayオブジェクトまたはNSDictionaryを使用できます。例:

NSArray * myDataArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:0], [NSNumber numberWithInt:2],@"A String", nil];

[self performSelector:@selector(doStuff:) withObject:myDataArray afterDelay:1.0];

-(void)doStuff:(NSArray *)array{
   NSNumber * myNumber = [array objectAtIndex:0];
   NSNumber * myNumber2 = [array objectAtIndex:1];
   NSString * myString = [array objectAtIndex:2];
}
于 2013-03-14T23:25:47.763 に答える
4

プロトコルperformSelector:withObject:withObject:で宣言されたものを使用して、最大2つのパラメーターを直接渡すことができます。NSObject

あなたの例を使用すると、セレクターはになります@selector(methodName:withObject:)

于 2013-03-14T23:19:30.873 に答える
0

できません。ただし、を渡してNSDictionary、そこから複数のオブジェクトをパックおよび抽出することはできます。

また、NSInvocationクラスもご覧ください。

于 2013-03-14T23:12:07.977 に答える