এক্সকোড 4 এবং কোর ডেটা: কীভাবে এসকিউএল ডিবাগিং সক্ষম করবেন


102

আমি একটি সর্বজনীন আইওএস অ্যাপে কাজ করছি এবং আমি যখন ডিবাগ করব তখন লগগুলিতে কাঁচা এসকিউএল দেখতে চাই। আইওএস কোর ডেটা বিকাশের জন্য কীভাবে কাঁচা এসকিউএল লগিং সক্ষম করবেন সে সম্পর্কে এই ব্লগ পোস্টে কিছু তথ্য রয়েছে । প্রদত্ত উদাহরণটি এক্সকোড 3 এর জন্য এবং এটি কীভাবে এক্সকোড 4 এ সক্ষম করবেন তা আমার কাছে পরিষ্কার নয়।

আমি "প্রোডাক্ট" -> "স্কিম সম্পাদনা করুন" চেষ্টা করেছি এবং " -com.apple.CoreData.SQLDebug 1 " "আর্গুমেন্টগুলি প্রবর্তন করে" যোগ করেছি, তবে আমি এখনও লগগুলিতে কোনও আউটপুট দেখছি না। আমি ভুল জায়গায় খুঁজছি বা ঠিক যুক্তিগুলি ভুলভাবে পাস করছি কিনা তা নিশ্চিত নয়।


1
এর জন্য ধন্যবাদ. আমার মূল সমস্যাটি হ'ল আমি যে টেবিলটিতে সন্ধান করছি তার সবেমাত্র ,000৪,০০০ সারি রয়েছে এবং আমি কতক্ষণ অনুসন্ধান চালাচ্ছি সে সম্পর্কে ধারণা পেতে চাই, যেহেতু এটি এখন বেশ ধীর। আমি পুরোপুরি বিমূর্ততা চলছে তা সত্যকে সম্মান করি, তবে হুডের নীচে কী চলছে তা নিয়ে আমি সত্যিই অন্ধকারে ছিলাম। এটি অন্তত আমাকে সামান্য সাহায্য করে।
ওল্ডার্স

যতক্ষণ আপনি সীমাবদ্ধতাগুলি বোঝেন ততক্ষণ কাঁচা এসকিউএলটি বিশেষ করে পারফরম্যান্স টুইটারের জন্য দেখার পক্ষে ভাল। লোকেরা যেখানে সমস্যার মধ্যে পড়ে যায় তারা কাঁচা এসকিউএল দেখে অবজেক্ট গ্রাফটি কীভাবে আচরণ করছে তা নির্ধারণের চেষ্টা করছেন। যেহেতু দুজনের মধ্যে সরাসরি কোনও সম্পর্ক নেই, কেবল এটি তাদেরকে বিপথগামী করে।
টেকজেন

উত্তর:


150

আপনি এনএসএলজিএস পান সেই একই স্থানে আপনার হওয়া উচিত

এবং আপনার পণ্যতে যেতে হবে -> সম্পাদনা করুন স্কিম -> তারপরে বাম প্যানেল থেকে YOURAPP.app চালান এবং মূল প্যানেলের আর্গুমেন্ট ট্যাবে যান।

সেখানে আপনি প্রারম্ভকালে পাস হওয়া একটি যুক্তি যুক্ত করতে পারেন।

আপনার যোগ করা উচিত -com.apple.CoreData.SQLDebug 4(1 থেকে 4 এর মধ্যে সংখ্যা, উচ্চতর সংখ্যা এটি আরও ভার্বোজ করে তোলে)

ঠিক আছে চাপুন এবং আপনার সমস্ত প্রস্তুত।

আপনি কী পরীক্ষার জন্য ব্যবহার করবেন সেই স্কিমটি সম্পাদনা করার জন্য এখানে কীটি রয়েছে।


8
এর জন্য ধন্যবাদ. সক্রিয় আউট, যতটা কাল্পনিক যায়, আমার আর্গুমেন্ট বিন্যাস ভুল ছিল হিসাবে আমি উত্তর এক দেখতে এখানে stackoverflow.com/questions/822906/... আমি একটি আর্গুমেন্ট পাস করতে হবে -com.apple.CoreData.SQLDebug এসকিউএল আউটপুট দেখতে 1 এর দ্বিতীয় যুক্তি ।
oalders

2
ডাটাবেসে পাস হওয়া আর্গুমেন্টগুলি কীভাবে প্রিন্ট করবেন সে সম্পর্কে কোনও চিন্তা? কীভাবে ক্যোয়ারীটি কাঠামোবদ্ধ হচ্ছে তা দেখার জন্য এই পদ্ধতিটি ঠিকঠাক কাজ করে, তবে এটি কেবলমাত্র এসকিউএল স্টেটমেন্টটি প্রিন্ট করে, UPDATE ZTABLE SET ZCOLUMN = ? WHERE ZID = ?এবং কীভাবে ডেটা প্রেরণ করা হচ্ছে তা দেখতে খুব কার্যকর নয়
ফিলিপ সাবিনো

আসলে, আমি ভেবেছিলাম এটিকে আসল এসও প্রশ্ন হিসাবে যুক্ত করা আরও ভাল হবে;) stackoverflow.com/questions/12306343/…
ফিলিপ সাবিনো

এটি কোনও ক্ষেত্রেই কেবল লগ করতে পারি যদি এটি ডাটাবেসে সন্নিবেশ করে অন্য ক্ষেত্রে না?
বিশাল ঝিমিরে

@ বিশালঘিমায়ার আমি নিশ্চিত নই, সম্ভবত আপনি কোথাও ঘটনা দ্বারা ফিল্টার করতে পারবেন। আমি সরাসরি পাঠ্য ফিল্টারিং ব্যবহার করে আউটপুট ফিল্টার করব।
নিকোলাস এস

20

এক্সকোড 4

এটি একই জায়গায় আমি আমার এনএসবিম্ববিএনেবলড পরিচালনা করি

প্রোডাক্ট -> স্কিম সম্পাদনা করুন -> ইউপ অ্যাপ. অ্যাপ ডিবাগ চালান

"প্রারম্ভকালে আর্গুমেন্টগুলি পাস করা হয়েছে" এর অধীনে হুবহু পেস্ট করুন:

-কম.এপল.কোরডেটা.এসকিউএলডিবগ ১

সতর্কতা - এই স্টাফটি খুব ভার্জোজ, যদি আপনার কাছে কোটার ডেটা সমস্যা থাকে তবে এটি আপনার পক্ষে দেখার মতো উপযুক্ত হতে পারে তবে এটি ভুল জিনিস সম্পর্কে আপনার প্রয়োজনের চেয়ে আরও বেশি তথ্য হতে পারে।


স্ট্রিং ফাইলটিতে এই -কম.এপল.কোরডাটা.মাইগ্রেশনডিবগ 1 মুদ্রণের যে কোনও উপায়, যাতে ব্যবহারকারী লগ ফাইলটি আপলোড করতে পারেন
rhlnair

5

আমার এটির সাথে একটি সমস্যা ছিল এবং তারপরে বুঝতে পারি এটি একটি নিখুঁত ভুল, যা আমি ধরে নিয়েছি আপনারা কারওর জন্য আগত ভুল। আমি যখন যুক্তিটি প্রবেশ করলাম তখন আমি Xcode (4.3.1)অগ্রণী হাইফেনটি ছেড়ে দিলাম। আমি যদি কমান্ড লাইনে এটি প্রবেশ করতাম তবে আমি তা না করতাম তবে জিইউআইতে আমি এটি বাদ দিয়েছিলাম। আমি 2 টি পৃথক আরগ বা একটিতে প্রবেশের মধ্যে কোনও পার্থক্য খুঁজে পাইনি (যেমন কিছু পোস্টের পরামর্শ দিয়েছিল)। সুতরাং ব্যবহার করুন:

-com.apple.CoreData.SQLDebug 1

এবং সহজভাবে না:

com.apple.CoreData.SQLDebug 1

যা আমার জন্য সিমুলেটর এবং বাস্তব ডিভাইসে কাজ করেছিল worked


3

নোট করুন যে আপনি পাস করা মানের বিভিন্ন স্তরে রাখতে পারেন। যা আরও বেশি করে ভার্বোসিটি সরবরাহ করে।

-com.apple.CoreData.SQLDebug 1
-com.apple.CoreData.SQLDebug 2
-com.apple.CoreData.SQLDebug 3
-com.apple.CoreData.SQLDebug 4 // This will actually show parameter binds ("?")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.