- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:NSString文字列をprintfで出力するには)
Objective-CでNSStringクラスの文字列をprintf関数で出力する方法
このQ&Aのポイント
- Objective-CのNSStringクラスの文字列をprintf関数で出力する方法を紹介します。
- 該当のコードでコンパイルエラーが発生した原因と解決策について解説します。
- MacOSX環境でXcodeを使用している場合、NSString文字列をprintfで出力する方法に注意が必要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あ、そういう問題ではないな。UTF8Stringでも、ちゃんと出力しますね。 「#import <Foundation/NSObject.h>」これが間違いなんでしょうね。これではNSStringクラスのヘッダファイルを読み込みませんから、NSStringクラスを使った時点で、未定義なことが起きますね。 #import <Foundation/Foundation.h> こう書き換えてください。 それと、<Foundation/Foundation.h>を導入すると、いっしょにC言語の主要ヘッダも導入するので、「#import <stdio.h>」は不要です。
その他の回答 (1)
- harawo
- ベストアンサー率58% (3742/6450)
回答No.1
UTF8Stringではなく、「cStringUsingEncoding:」を使ってください。UTF8はユニコードのことで、1文字に付き2バイトをあてます。1文字に付き1バイトをあてるC言語の文字列と異なります。 cStringUsingEncoding:のエンコードは、半角英数しか使っていないのであれば、「NSASCIIStringEncoding」、それ以外は「NSUTF8StringEncoding」とします。テキスト書類からShit JISエンコードのテキストを読み込んだという場合は、「NSShiftJISStringEncoding」。 ※ただエラーメッセージ「but argument 2 has type ‘id’」もおかしい気がします。 コンソールに出力するのは、printfではなく、NSLog()を使ったほうがいいでしょう。文字列を出力するには、「%@」を使います。 NSLog(@"The output = %@", str01);
お礼
#import <Foundation/Foundation.h> を記載したら動作しました!ありがとうございます。 NSLog()も使ってみましたが、 一緒に出てしまう日時などのログ情報が邪魔だったのでprintfを使ってみたかった次第です。 ありがとうございました!