这种报错一般都是参数类型错误导致的,具体要检查一下是哪一个参数的类型。我遇到的情况是脚本调用OC函数时会传参数过来,程序如下:
-(void) Test:(NSDictionary*)params
{
@try {
NSString* price = [params objectForKey:@"price "];
NSString* productname = [params objectForKey:@"productName"];
NSString* productdesc = [params objectForKey:@"productDesc"];
ViewController * testCtr = [[ViewController alloc]init];
testCtr.delegate = self;
[self presentViewController:rechage animated:NO completion:^{
[testCtr setPrice: price productname:productname productdesc:productdesc ];
}];
} @catch (NSException *exception) {
NSLog(@"init crash");
} @finally {
}
NSString* price = [params objectForKey:@"price "];
NSString* productname = [params objectForKey:@"productName"];
NSString* productdesc = [params objectForKey:@"productDesc"];
ViewController * testCtr = [[ViewController alloc]init];
testCtr.delegate = self;
[self presentViewController:rechage animated:NO completion:^{
[testCtr setPrice: price productname:productname productdesc:productdesc ];
}];
} @catch (NSException *exception) {
NSLog(@"init crash");
} @finally {
}
}
这里脚本传回来的price实际是一个数值类型,而不是一个字符串。但是price需要以NSString类型传入,这里读取数据的时候需要转换为NSString类型
NSString*price = [params objectForKey:@"price"]; 改为 NSString* price = [NSString stringWithFormat:@"%@", [params objectForKey:@"price"]];