NSStrings
に追加するものがいくつかありNSArray
ます。文字列には特殊文字が含まれる場合があります。最後に、配列をに出力したいと思いUILabel
ます。
非常に単純化されたコード (何かを見逃したと思われる場合はお知らせください):
NSString *strBuffer = @"Röckdöts";
NSLog(@"String: %@", strBuffer);
NSMutableArray *marrSelectedStrings = [[NSMutableArray alloc] init];
[marrSelectedStrings addObject:strBuffer];
NSLog(@"Array: %@", marrSelectedStrings);
NSUInteger iCount = [marrSelectedStrings count]
for (NSUInteger i = 0; i < iCount; i++)
{
NSLog(@"element %d: %@", i, [marrSelectedStrings objectAtIndex: i]);
}
別のUIViewController
:
self.label.text = [NSString stringWithFormat:@"%@", marrSelectedStrings];
文字列自体は正常に出力されます。ただし、配列の場合、コンソールが正しい特殊文字またはコードを表示するかどうかは、出力方法によって異なります。ラベルには、実際の文字ではなくコードのみが印刷されています。経由での印刷NSLog
は次のようになります。
Buffer: Röckdöts
Array: (
R\U00f6ckd\U00f6ts
)
element 0: Röckdöts
ラベルには次のように書かれています。
R\U00f6ckd\U00f6ts
配列に追加する際と、ラベルに割り当てる際にエンコードする際に使用してみstringWithUTF8String
ましたが、結果は変わりませんでした:
// adding with UTF8 encoding
[marrSelectedStrings addObject:[NSString stringWithUTF8String:[strBuffer UTF8String]]];
// printing to label with UTF8 encoding
self.label.text = [NSString stringWithUTF8String:[[NSString stringWithFormat:@"%@", marrSelectedStrings] UTF8String]];
UILabel
配列を反復してすべての単語を追加するよりも、正しい文字エンコーディングで配列を単純に出力する簡単な方法はありますか?