【发布时间】:2012-09-19 20:15:34
【问题描述】:
好的,我不确定这是如何或为什么起作用的,但如果有人可以向我解释这一点,我将不胜感激。
我正在调试一个 iPhone 应用程序,Xcode 给我以下警告,这是正确的:“格式指定类型 'int' 但参数有一个类型 'NSString'。
下面的代码返回一个数字,但如果我将它设置为一个字符串,它会返回一个很长的字符串。我知道他们想要整数而不是字符串,但我不知道为什么这会为字符串返回一个数字,因为当我使用 [str intValue] 更改它时,我得到“0”而不是长数字。那么这是如何工作的,有人可以向我解释一下吗?
代码如下:
- (void) FooBar:(NSString *)myStr
{
NSString *callback = [NSString stringWithFormat:@"Some Text Here(%i)", myStr];
[self.webView stringByEvaluatingJavaScriptFromString:callback];
}
好的,让我告诉你我的意思,请不要担心字符串被传递。我只想知道它是如何产生如下所示的数字的。我做了三个 NSLog:
- (void) FooBar:(NSString *)myStr
{
NSString *callback = [NSString stringWithFormat:@"Some Text Here(%i)", myStr];
NSLog(@"NSString = %@", myStr);
NSLog(@"Percent i = %i", myStr);
NSLog(@"Percent i = %i", [myStr intValue]);
[self.webView stringByEvaluatingJavaScriptFromString:callback];
}
结果:
NSString = /__utm.gif?utmwv=4.8mi&utmn=1220166202&utmt=event&utme=5(Init*shoutzVersion*iPhone%20Simulator)(1)&utmcs=UTF-8&utmsr=320x480&utmsc=24-bit&utmul=en-us&utmac=UA-28151051-1&utmcc=__utma%3D1.1697021890.1347557664.1348092917.1348092961.195%3B&utmht=1348092961213&utmqt=9984
Percent i = 154448576
Percent i = 0
有人知道为什么会这样吗?
谢谢!
【问题讨论】:
-
Aaaand euh,顺便说一句,编译器是对的,你的问题对我来说不太有意义......你能详细说明一下吗?你能指望什么?那个应该是整数的字符串是什么?
标签: iphone objective-c nsstring stringwithformat