2011-06-21 12 views
92

私は普遍的なiOSアプリケーションで作業しています。デバッグしているときにログに生のSQLが表示されます。 iOSコアデータ開発用の未加工SQLロギングを有効にする方法については、in this blog postの情報があります。 XCode 3の場合の例ですが、XCode 4でこれを有効にする方法がわかりません。XCode4とCore Data:SQLデバッグを有効にする方法

"Product" - > "Edit Scheme"を試して "-com.apple.CoreData"を追加しました。 SQLDebug 1 "を"起動時引数 "に渡しましたが、ログに出力が表示されません。間違った場所を探しているのか、引数を間違って渡しているのか分かりません。 >編集スキーム - - あなたがNSLOGS

を取得し、あなたが製品に行く必要があり、同じ場所を見てする必要があります

+1

感謝の両方で私のために働いた com.apple.CoreData.SQLDebug 1 。私の主な問題は、私が検索しているテーブルが74,000行をわずかに超えていることです。クエリが実行されている時間を知りたいのですが、今はかなり遅いからです。私は抽象化のことがずっと続いているという事実を尊重しますが、私は実際に何が起こっているのか暗闇の中にいました。これは少なくとも私をほんの少しだけ助けます。 – oalders

+0

制限事項を理解している限り、特にパフォーマンス調整のために、生のSQLを見ても問題ありません。人々が困っているところでは、生のSQLを見てオブジェクトグラフがどのように動作しているかを把握しようとしています。両者の間に直接の関係はないので、それは彼らを迷わせるだけです。 – TechZen

答えて

142

>は、次に左側のパネルから実行YOURAPP.appを選択し、メインパネルの引数]タブに移動します。

ここで引数を渡すことができます。

あなたは-com.apple.CoreData.SQLDebug 1

[OK]を押し追加する必要がありますし、あなたはすべてのセットです。

ここでの重要な点は、テストに使用するスキームを編集することです。

+8

ありがとうございます。私の議論の形式は間違っていたが、ここでの答えの1つに見られるようになった。http://stackoverflow.com/questions/822906/how-do-i-get-the-coredata- debug-argument-to-the-console ** - com.apple.CoreDataの引数を渡す必要があります。SQLDebug **と** 1 **の第2引数を使用してSQL出力を確認します。 – oalders

+2

データベースに渡された引数を出力する方法について考えていますか?このアプローチは、クエリがどのように構造化されているか見るためにうまく動作しますが、 'UPDATE ZTABLE SET ZCOLUMN =? 'のようなSQL文だけを表示します。 WHERE ZID =? 'と送信されているデータが本当に何かを見るのはあまり役に立ちません –

+0

実際には、実際の質問として追加する方が良いと思いました;)http://stackoverflow.com/questions/12306343/how-to-print-core-data-debug-values –

20

XCodeの4

それは私が私のNSZombieEnabled管理するのと同じ場所にあります

製品 - >編集スキーム - > [ファイル名を指定して実行YouApp.appデバッグ

"打ち上げに渡される引数" の下で、ペースト正確で:

-com.apple.CoreData.SQLDebug 1

警告 - あなたはコアデータの問題を抱えている場合はこのようなものは、非常に冗長で、このかもしれませんしかし、それはあなたが間違ったことについて必要とする以上の情報かもしれません。

+0

この-com.apple.CoreData.MigrationDebug 1を文字列ファイルに印刷する方法はありません。これにより、ユーザーはログファイルをアップロードできます – rhlnair

5

私はこれに問題を抱えていましたが、それは愚かな省略であることに気がつきました。私はこれがあなたの間違いであると思います。私がXcode(4.3.1)で議論に入ったとき、私は先頭のハイフンを省いた。コマンドラインで入力していたのですが、GUIでは省略しました。私は2つの別々のargsまたは1つ(いくつかの投稿が示唆したように)で入力することに違いはなかった。だから、使用:-com.apple.CoreData.SQLDebug 1 はなく、単に:シミュレータと実機このため

関連する問題