performSelector afterDelay有多个参数错误

时间:2012-08-17 10:32:40

标签: ios ios5 xcode4 unrecognized-selector performselector

我在这段代码上遇到了performSelector方法的一些问题:

此方法位于名为“JSONMethods”的其他类中:

+(void)sendPostMsgWithMultipleArguments:(NSArray *)myArgs {
[self sendPostMsg:[myArgs objectAtIndex:0]:[myArgs objectAtIndex:1]];
}

然后,在另一节课上我接到电话:

- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"Loading...";

JSONMethods *methods = [[JSONMethods alloc]init];
NSArray *arguments = [[NSMutableArray alloc]initWithObjects:@"http://localhost/promos/txFirmas.php",[NSString stringWithFormat:@"sensor=%d",tableViewNumber], nil];
[methods performSelector:@selector(sendPostMsgWithMultipleArguments:)
           withObject:arguments
           afterDelay:3.0];

NSString *tit = [NSString stringWithFormat:@"Sign: %d",tableViewNumber];
self.title = tit;
}

我想等到“sendPostMsgWithMultipleArguments:”完成更改标题,我怎么能做到? 当我测试这个时,mi app崩溃并通过控制台告诉我:

2012-08-17 12:09:15.966 MapaProject[524:11603] -[JSONMethods sendPostMsgWithMultipleArguments:]: unrecognized selector sent to instance 0x7c85b70
2012-08-17 12:09:15.968 MapaProject[524:11603] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[JSONMethods sendPostMsgWithMultipleArguments:]: unrecognized selector sent to instance 0x7c85b70'
*** First throw call stack:
(0x133a022 0x2016cd6 0x133bcbd 0x12a0ed0 0x12a0cb2 0xa1c85d 0x130e936 0x130e3d7 0x1271790 0x1270d84 0x1270c9b 0x15db7d8 0x15db88a 0xf6626 0x236d 0x20c5)
terminate called throwing an exception
你能帮帮我吗? 在此先感谢:)

2 个答案:

答案 0 :(得分:1)

更改+(void)sendPostMsgWithMultipleArguments:(NSArray *)myArgs

-(void)sendPostMsgWithMultipleArguments:(NSArray *)myArgs

甚至更好的改变

[methods performSelector:@selector(sendPostMsgWithMultipleArguments:) withObject:arguments afterDelay:3.0];

[[methods class] performSelector:@selector(sendPostMsgWithMultipleArguments:) withObject:arguments afterDelay:3.0];

答案 1 :(得分:0)

NSArray * mutArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:0],[NSNumber numberWithInt:2],nil]

[self performSelector:@selector(loadMore :) withObject:mutArray afterDelay:1.9];

-(void)loadMore:(NSArray *)array
{
 NSNumber * myNumber = [array objectAtIndex:0];
 NSNumber * myNumber2 = [array objectAtIndex:1];

}

相关问题