“too many arguments to function call,expected 0, have2”意思是参数过多了,如何解决这个问题呢?很简单,比如下面这个案例,获取UIImage对象的方法。
UIImage *image = [UIImage imageNamed:@"bg%d",_backIndex];
_backIndex为NSInteger类型,如果这样使用的话,就会出现上面的“ too many arguments to function call,expected 0, have2 ”问题了,因为imageNamed方法是只能接收一个参数的,而我们给了它相当于两个参数“ @"bg%d",_backIndex ”,那么我们如何更改呢?如下。
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"bg%zd",_backIndex]];
我们可以用NSString中的stringWithFormat方法来封装一下这两个参数,返回的结果就是一个参数的string类型,这个时候UIImage的imageNamed方法就可以接收了。