これがどのように、またはなぜ機能しているのかはわかりませんが、誰かがこれを説明してくれれば大歓迎です。
iPhone アプリをデバッグしていて、Xcode から次の警告が表示されますが、これは正しいものです:「フォーマットはタイプ 'int' を指定していますが、引数にはタイプ 'NSString' があります。
以下のコードは数値を返しますが、文字列に設定すると非常に長い文字列が返されます。彼らが文字列ではなく整数を望んでいることは知っていますが、[str intValue] を使用して変更すると、長い数値ではなく「0」が得られるため、これが文字列の数値を返す理由がわかりません。それで、これはどのように機能していますか、誰かが私にこれを説明できますか?
コードは次のとおりです。
- (void) FooBar:(NSString *)myStr
{
NSString *callback = [NSString stringWithFormat:@"Some Text Here(%i)", myStr];
[self.webView stringByEvaluatingJavaScriptFromString:callback];
}
わかりました、私の言いたいことをお見せしましょう。文字列が渡されることを心配しないでください。以下に示すような数値がどのように生成されるかを知りたいだけです。3 つの 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
なぜこれが起こるのか知っている人はいますか?
ありがとう!