2011-06-21 15 views
92

कैसे सक्षम करें मैं एक सार्वभौमिक आईओएस ऐप पर काम कर रहा हूं और जब मैं डिबगिंग कर रहा हूं तो लॉग में कच्चे एसक्यूएल को देखना चाहता हूं। आईओएस कोर डेटा विकास के लिए कच्चे एसक्यूएल लॉगिंग को सक्षम करने के तरीके के बारे में कुछ जानकारी in this blog post है। दिया गया उदाहरण एक्सकोड 3 के लिए है और यह मुझे स्पष्ट नहीं है कि एक्सकोड 4 में इसे कैसे सक्षम किया जाए।एक्सकोड 4 और कोर डेटा: एसक्यूएल डिबगिंग

मैंने "उत्पाद" -> "योजना संपादित करें" की कोशिश की है और "-com.apple.CoreData" जोड़ा है। SQLDebug 1 "टू" लॉन्च पर गुजरने वाले तर्क ", लेकिन मुझे अभी भी लॉग में कोई आउटपुट नहीं दिख रहा है। निश्चित नहीं है कि मैं गलत जगह पर देख रहा हूं या सिर्फ तर्कों को गलत तरीके से पास कर रहा हूं।

+1

इस के लिए धन्यवाद में मेरे लिए काम किया। मेरा मुख्य मुद्दा यह है कि जिस तालिका में मैं खोज रहा हूं वह 74,000 से अधिक पंक्तियों में है और मैं इस बारे में जानना चाहता था कि कितनी देर तक प्रश्न चल रहे हैं, क्योंकि यह अभी काफी धीमा है। मैं इस तथ्य का सम्मान करता हूं कि वहां बहुत सारे अमूर्त चल रहे हैं, लेकिन मैं वास्तव में अंधेरे में था कि हुड के नीचे क्या चल रहा था। यह कम से कम मुझे थोड़ा सा मदद करता है। – oalders

+0

जब तक आप सीमाओं को समझते हैं, तब तक कच्चे एसक्यूएल को देखना ठीक है, खासकर प्रदर्शन tweaking के लिए। जहां लोग परेशानी में पड़ते हैं, यह पता लगाने की कोशिश कर रहा है कि कैसे कच्चे एसक्यूएल को देखकर वस्तु ग्राफ व्यवहार कर रहा है। चूंकि दोनों के बीच कोई सीधा संबंध नहीं है, इसलिए यह उन्हें भटकने का नेतृत्व करता है। – TechZen

उत्तर

142

आप एक ही जगह पर विचार करना चाहिए कि आप NSLOGS

मिलता है और आप उत्पाद के पास जाना चाहिए - बाएं फलक से फिर> चलाएँ YOURAPP.app का चयन करें और मुख्य पैनल के पक्ष में दलील टैब पर जाएं -> संपादित योजना।

वहां आप लॉन्च पर पास एक तर्क जोड़ सकते हैं।

आप -com.apple.CoreData.SQLDebug 1

OK दबाएं जोड़ना चाहिए और अपने सभी सेट कर रहे हैं।

यहां की कुंजी उस योजना को संपादित करना है जिसका आप परीक्षण के लिए उपयोग करेंगे।

+8

इसके लिए धन्यवाद। जहां तक ​​सिम्युलेटर जाता है, बाहर निकलता है, मेरे तर्कों का प्रारूप गलत था क्योंकि मैं यहां किसी एक उत्तर में देखता हूं http://stackoverflow.com/questions/822906/how-do-i-get-the-coredata- डीबग-तर्क-टू-आउट-टू-द-कंसोल मुझे ** - com.apple.CoreData का तर्क पारित करने की आवश्यकता है।SQL आउटपुट देखने के लिए SQLDebug ** और ** 1 ** का दूसरा तर्क। – oalders

+2

डेटाबेस पर पास किए गए तर्कों को मुद्रित करने के तरीके पर कोई विचार? यह दृष्टिकोण यह देखने के लिए ठीक काम करता है कि क्वेरी को कैसे संरचित किया जा रहा है, लेकिन यह केवल एसक्यूएल स्टेटमेंट प्रिंट करता है, जैसे 'अद्यतन ज़ेडबल सेट ZCOLUMN =? जहां ZID =? 'और यह वास्तव में देखने के लिए बहुत उपयोगी नहीं है कि डेटा –

+0

भेजा जा रहा है वास्तव में, मैंने सोचा कि इसे वास्तविक SO प्रश्न के रूप में जोड़ना बेहतर होगा;) http://stackoverflow.com/questions/12306343/कैसे-से-प्रिंट-कोर-डेटा-डीबग-मान –

20

XCode 4

यह एक ही जगह मैं अपने NSZombieEnabled प्रबंधन में है

उत्पाद -> योजना संपादित करें -> भागो YouApp.app डीबग

"लॉन्च पर पारित तर्क" के अंतर्गत, वास्तव में पेस्ट :

-com.apple.CoreData.SQLDebug 1

चेतावनी - इस सामान, बहुत वर्बोज़ है आप कोर डाटा समस्या है तो, इस पराक्रम अच्छी तरह से देखने लायक हो, लेकिन गलत चीज़ के बारे में आपको आवश्यकता से भी अधिक जानकारी हो सकती है।

+0

स्ट्रिंग फ़ाइल पर thiscom.apple.CoreData.MigrationDebug 1 को मुद्रित करने का कोई भी तरीका, ताकि उपयोगकर्ता लॉग फ़ाइल अपलोड कर सके – rhlnair

5

मुझे इसके साथ कोई समस्या हो रही थी और फिर एहसास हुआ कि यह एक मूर्खतापूर्ण चूक है, जो मुझे लगता है कि आप में से कुछ के लिए एक कॉमर गलती है। जब मैंने एक्सकोड (4.3.1) में तर्क दर्ज किया, तो मैंने अग्रणी हाइफ़न छोड़ा। मैंने ऐसा नहीं किया होता था, इसलिए मैं इसे कमांड लाइन पर दर्ज कर रहा था, लेकिन जीयूआई में मैंने इसे छोड़ दिया था। मुझे 2 अलग-अलग तर्कों या एक में प्रवेश करने के बीच कोई अंतर नहीं मिला (जैसा कि कुछ पदों ने सुझाव दिया था)। तो का उपयोग करें: -com.apple.CoreData.SQLDebug 1 और नहीं बस: com.apple.CoreData.SQLDebug 1 कि दोनों सिम्युलेटर और असली डिवाइस

संबंधित मुद्दे