预计方法调用的参数太多,有2个

这看起来很傻,但我不知道为什么有一个错误:

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://api.vk.com/method/newsfeed.get?access_token=%@", self.secret]]; 

和XCode警告我用“红色”错误 – 太多的方法调用期望1,有2的参数。但我没有第二个"%@"符号,为什么会发生?

将这些陈述分解为中间体可以帮助查明错误,对于开发人员来说更容易理解。 不应该有性能损失,编译器会将这些语句合并在一起。

还使用提供错误反馈的API版本。

 NSString *urlString = [NSString stringWithFormat:@"https://api.vk.com/method/newsfeed.get?access_token=%@", self.secret]; NSURL *url = [NSURL URLWithString: urlString]; NSError *error; NSData *data = [NSData dataWithContentsOfURL:url options:0 error:&error]; if (data) { // process data } else NSLog(@"data error: %@", error); // handle error } 

是的,error handling是混乱的,一个PITA,但确实需要完成,这是软件开发的一部分。

注意:此Web访问将阻止应用程序,直到它完成,最好使用不阻止的asynchronous方法。

  NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://api.vk.com/method/newsfeed.get?access_token=%@", self.secret]]]; 

你应该用stringWithFormat:创build格式化的stringstringWithFormat: