2

我有StringWithFormat不工作的问题。调试器说返回的字符串不是一个NSString(并且它不是空的),因此我的调用应该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>

4

3 回答 3

1

尝试将前两行更改为..

  int TTL = 1;
        NSString *ttl = [NSString stringWithFormat:@" \n# %@",[NSNumber numberWithInt:TTL] ] ;

   TTL++;
   [self textToParent: (NSString *) ttl];     //  Change here.
   TTL--;
于 2012-10-03T06:31:53.340 回答
0

试试下面的代码...

int TTL = 1;
NSString *ttl = [NSString stringWithFormat:@" \n# %@",[NSNumber numberWithInt:TTL]] ;
[ttl retain];
TTL++;
[self textToParent:  ttl];
TTL--;

希望这可以帮助你...

:)

于 2012-10-03T06:37:24.873 回答
0

考虑到您的调试器可能并不完美。单击调试器中的变量,右键单击“打印描述”。

于 2014-04-03T09:33:41.620 回答