タグ付けされた質問 「nslog」

13
メソッド名と行番号を出力し、NSLogを条件付きで無効にする方法は?
Xcodeでのデバッグに関するプレゼンテーションを行っています。NSLogを効率的に使用するための詳細情報を入手したいと考えています。 特に、2つの質問があります。 現在のメソッドの名前/行番号を簡単にNSLogする方法はありますか? リリースコード用にコンパイルする前に、すべてのNSLogを簡単に「無効にする」方法はありますか?


12
量産コードでNSLog()を使用すべきではないというのは本当ですか?
私はこのサイトでこれを何度か言われましたが、私はこれが本当にそうであることを確認したかったのです。 私はコード全体にNSLog関数呼び出しを振りかけることができると期待していました、そしてXcode / gccは私のリリース/配布ビルドをビルドするときにそれらの呼び出しを自動的に取り除くでしょう。 これは使用しないでください。もしそうなら、経験豊富なObjective-Cプログラマの間で最も一般的な代替手段は何ですか?

3
NSIntegerのNSLog / printf指定子?
A NSIntegerは、32ビットプラットフォームでは32ビット、64ビットプラットフォームでは64ビットです。NSLog常にサイズに一致する指定子はありNSIntegerますか? セットアップ Xcode 3.2.5 llvm 1.6コンパイラ(これは重要です。gccはこれを行いません) GCC_WARN_TYPECHECK_CALLS_TO_PRINTF オン これは私にいくつかの悲しみを引き起こしています: #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSInteger i = 0; NSLog(@"%d", i); } return 0; } 32ビットコードの場合、%d指定子が必要です。しかし、%d指定子を使用すると、64ビット用にコンパイルするときに警告が表示され、%ld代わりに使用するように提案されます。 %ld64ビットサイズと一致させるために使用する場合、32ビットコード用にコンパイルすると、%d代わりに使用することを示唆する警告が表示されます。 両方の警告を一度に修正するにはどうすればよいですか?どちらでも機能する指定子はありますか? これも影響[NSString stringWithFormat:]し[[NSString alloc] initWithFormat:]ます。


2
オーバーライドされた記述メソッドでのオブジェクトのメモリアドレスのNSLog
オブジェクトの記述メソッドをオーバーライドしています。以下のコードでオブジェクトのメモリアドレスを印刷して{???}を置き換える方法を知る必要があります。 -(NSString *) description { return [NSString stringWithFormat:@"<SomeClass: %@>\nparmeterOne: %@\nparameterTwo: %@", {???}, self.parameterOne, self.paramterTwo]; } 私はそれを次のようにコンソールで印刷したいです: <SomeClass: 0x4c05600> parameterOne: 12 parameterTwo: sausages
116 objective-c  nslog 

11
警告:「フォーマットは文字列リテラルではなく、フォーマット引数はありません」
最新のXcode 3.2.1とSnow Leopardにアップグレードしてから、警告が表示されます 「フォーマットは文字列リテラルではなく、フォーマット引数はありません」 次のコードから: NSError *error = nil; if (![self.managedObjectContext save:&error]) { NSLog([NSString stringWithFormat:@"%@ %@, %@", errorMsgFormat, error, [error userInfo]]); } 場合errorMsgFormatであるNSString書式指定子を持つが(例えば:"print me like this: %@")、上記の何が問題になっているNSLogコール?そして、警告が生成されないようにそれを修正するための推奨される方法は何ですか?

6
NSLogとCGPointデータ
タッチが割り当てられているポイントと呼ばれるCGPointがあります。 UITouch *touch = [touches anyObject]; CGPoint point = [touch locationInView:self]; x座標値をコンソールログに取得します。 NSLog(@"x: %s", point.x); これを使用すると、このログ出力は次のようになります。 x:(null) これがデバッガーと変数ウォッチを使用して呼び出されたときに、ポイントがnullではないことを確認しました。 助けてくれてありがとう、 ありがとう// :)

9
iOS 10がNSLogを印刷しない
NSLogXcode 8.0ベータ(8S128d)では何も印刷されません。printf変わらない これが私のコードです: NSLog(@"hello from NSLog"); printf("hello from printf"); iOS 9シミュレータでの出力は次のとおりです。 2016-06-17 09:49:10.887 calmapp-dev[28517:567025] hello from NSLog hello from printf iOS 10シミュレータでの出力は次のとおりです。 hello from printf
88 ios  xcode  nslog  xcode8  ios10 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.