web-dev-qa-db-ja.com

NSUIntegerをNSStringにどのように変換しますか?

NSUIntegerNSStringにどのように変換しますか?試しましたが、NSStringは常に0を返しました。

NSUInteger NamesCategoriesNSArrayCount = [self.NamesCategoriesNSArray count];  
NSLog(@"--- %d", NamesCategoriesNSArrayCount);  
[NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d",    NamesCategoriesNSArrayCount]];  
NSLog(@"=== %d", NamesCategoriesNSArrayCountString);
23
user563496

arm64のサポートを使用してコンパイルする場合、これは警告を生成しません。

[NSString stringWithFormat:@"%lu", (unsigned long)myNSUInteger];
35
Andreas Ley

あなたのNamesCategoriesNSArrayCountStringNSStringであることを願っています。はいの場合は、以下のコード行を使用してください。

NamesCategoriesNSArrayCountString  = [NSString stringWithFormat:@"%d", NamesCategoriesNSArrayCount]];

代わりに

[NamesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%d", NamesCategoriesNSArrayCount]];
7
Raj

次のものも使用できます。

NSString *rowString = [NSString stringWithFormat: @"%@",  @(row)];

ここで、rowはNSUIntegerです。

5
Reefwing

arm64用にコンパイルするときは、警告を回避するために以下を使用してください。

[NSString stringWithFormat:@"%tu", myNSUInteger];

または、あなたの場合:

NSUInteger namesCategoriesNSArrayCount = [self.NamesCategoriesNSArray count];  
NSLog(@"--- %tu", namesCategoriesNSArrayCount);  
[namesCategoriesNSArrayCountString setText:[NSString stringWithFormat:@"%tu", namesCategoriesNSArrayCount]];  
NSLog(@"=== %@", namesCategoriesNSArrayCountString);

(また、ヒント:変数は小文字で始まります。情報: ここ

5
Paul Peelen

この String Format Specifiers の記事Appleは、フォーマットする必要がある場合に固有ですAppleタイプ:

OS Xは、NSInteger、NSUInteger、CGFloat、CFIndexなどのいくつかのデータ型を使用して、32ビットおよび64ビット環境で値を表す一貫した手段を提供します。 32ビット環境では、NSIntegerとNSUIntegerは、それぞれintとunsignedintとして定義されます。 64ビット環境では、NSIntegerとNSUIntegerは、それぞれlongとunsignedlongとして定義されます。プラットフォームに応じて異なるprintfスタイルの型指定子を使用する必要をなくすために、表3に示す指定子を使用できます。場合によっては、値をキャストする必要があることに注意してください。

  • [NSString stringWithFormat:@"%ld", (long)value]:10進数で表示されるNSInteger
  • [NSString stringWithFormat:@"%lx", (long)value]:NSIntegerは16進数で表示されます
  • [NSString stringWithFormat:@"%lu", (unsigned long)value]:10進数で表示されるNSUInteger
  • [NSString stringWithFormat:@"%lx", (unsigned long)value]:16進数で表示されるNSUInteger
  • _[NSString stringWithFormat:@"%f", value]_:CGFloat
  • [NSString stringWithFormat:@"%ld", (long)value]:CFIndexが10進数で表示されます
  • [NSString stringWithFormat:@"%lx", (long)value]:CFIndexは16進数で表示されます

詳細については、記事を参照してください。

0
Nate