2

動作しないという問題が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>

4

3 に答える 3

1

最初の2行をに変更してみてください。

  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 に答える