我遇到StringWithFormat
无效的问题。调试器说返回的字符串不是NSString
(并且它不是null),因此我假设NSString
的调用与方法选择器不匹配,我的应用程序崩溃。
我正在测试XCode 4.5 iOS 6设置(旧项目,没有子项目)。
此代码将返回不是NSString
的内容:
[NSString stringWithFormat:@"\nTest to %@ (%@)\n", target, ipString]
如果我在格式字符串中插入一个空格作为第一个字符,那么结果是NSString
,即以下工作:
[NSString stringWithFormat:@"\nTest to %@ (%@)\n", target, ipString]
此代码块也不起作用。它返回的内容不是NSString
。我在这里做错了什么?
int TTL = 1;
NSString *ttl = [NSString stringWithFormat:@" \n# %d", TTL] ;
TTL++;
[self textToParent: ttl]; // Program crashes here. Debugger show ttl not NSString.
TTL--;
错误讯息为ttl = (__NSCFString *) 0xwhatever @<variable is not NSString>
答案 0 :(得分:1)
尝试将前两行更改为..
int TTL = 1;
NSString *ttl = [NSString stringWithFormat:@" \n# %@",[NSNumber numberWithInt:TTL] ] ;
TTL++;
[self textToParent: (NSString *) ttl]; // Change here.
TTL--;
答案 1 :(得分:0)
尝试下面的代码...
int TTL = 1;
NSString *ttl = [NSString stringWithFormat:@" \n# %@",[NSNumber numberWithInt:TTL]] ;
[ttl retain];
TTL++;
[self textToParent: ttl];
TTL--;
希望这能帮到你......
:)
答案 2 :(得分:0)
考虑一下你的调试器可能不是很完美。单击调试器中的变量,右键单击&#34;打印说明&#34;。