我在测试iPhone0应用程序中有一个按钮,它根据URL中的GET ID打开StackOverflow问题。每次按下按钮,页面都应重新加载到下一个问题。
我通过最初设置为1的int count
计算GET ID,并按下每个按钮递增。
使用以下网址对网址进行硬编码:NSString *urlAddress=[NSString stringWithFormat:@"http://stackoverflow.com/questions/1"];
有效,但显然不允许使用计数器。当我尝试用以下方式实现计数器时:
NSString *urlAddress =[NSString stringWithFormat: @"http://stackoverflow.com/questions/%@", count];
程序因OBJC_MSGSEND错误而失败。为什么这行代码不起作用?
*我已经调试过,这是导致上述错误的第一行。
感谢。
答案 0 :(得分:4)
count
不是对象。您需要使用%d
,而不是%@
。使用%@
作为格式说明符意味着“将description
方法发送到我作为参数提供的对象”。由于您的变量count
实际上不是对象,因此您无法向其发送任何消息。
您的代码(缩写为更好地展示示例),如下所示:
NSString *s = [NSString stringWithFormat:@"something/%@", count];
这几乎相当于:
NSString *s = [NSString stringWithFormat:@"something/%@", [count description]];
可以想象,运行时无法做出正面或反面(毕竟count
是int
)。使用这种格式将起作用:
NSString *s = [NSString stringWithFormat:@"something/%d", count];