XCode आयोजक, कंसोल में - मैं NSLog
उत्पादन पढ़ सकते हैं, लेकिन नहीं printf()
। यह संभव असली डिवाइस पर printf()
परिणाम पढ़ने के लिए सिम्युलेटर में की तरह एक ही है?iPhone डिबगिंग असली डिवाइस
उत्तर
सबसे आसान समाधान अपनी परियोजना में विश्व स्तर पर printf समारोह ओवरलोड और NSLog उत्पादन के साथ बदलना होगा
int printf(const char * __restrict format, ...)
{
va_list args;
va_start(args,format);
NSLogv([NSString stringWithUTF8String:format], args) ;
va_end(args);
return 1;
}
सोहाइब, बड़ा धन्यवाद। यह समाधान पूरी तरह से काम करता है, और मैं बिना किसी बदलाव के सभी सी कोड छोड़ सकता हूं :) – theWalker
@skippy: इसे सही उत्तर के रूप में चिह्नित नहीं किया जाना चाहिए? – newenglander
हमें कोड का यह टुकड़ा कहां रखना चाहिए? – Raptor
स्किप्पि, printf() उत्पादन बयान ग नहीं उद्देश्य सी के लिए, अतः वास्तविक डिवाइस में भी printf() काम नहीं कर रहा है के लिए है।
ऑब्जेक्टिव-सी सी के एक सख्त superset है। लेकिन दृश्यों के पीछे एनएसएलओजी() printf() से अधिक करता है, यही कारण है कि Skippy को परेशानी हो रही है। –
मेरा मानना है कि समस्या वास्तव में stdout के लिए कि printf प्रिंट है, NSLog प्रिंट stderr करने के लिए है, जबकि। –
निक, fprintf (stderr, प्रारूप, args); एक्सकोड ऑर्गनाइज़र कंसोल के तहत काम नहीं करते हैं। – theWalker
आप के लिए डिवाइस के कंसोल केवल मुद्रित करने के लिए निम्न आदेश चला सकते हैं:
syslog(LOG_WARNING, "log string");
आप <sys/syslog.h> को syslog और LOG_WARNING के लिए स्पष्ट रूप से घोषित किया जाना चाहिए
आप स्पष्ट रूप से उन्हें घोषित किए बिना मानक लॉग कोड का उपयोग कर सकते हैं, मुझे लगता है कि – wxs
हां, जैसा कि मैंने कहा था, syslog और LOG_WARNING को sys/syslog.h में स्पष्ट रूप से घोषित किया गया है (< and > के गलत उपयोग के कारण शामिल का नाम दिखाई नहीं दे रहा था) –
ऑन आईओएस 10 stdout एक्सकोड को भेजा जा रहा है, इसलिए syslog अब और जरूरत नहीं है। –
निक लॉकवुड ने उपरोक्त टिप्पणियों में से एक में कहा, प्रिंटफ प्रिंट प्रिंट करने के लिए प्रिंट करते हैं लेकिन एनएसएलओजी प्रिंटर को प्रिंट करता है। आप stderr (Xcode कंसोल) के बजाय printf का उपयोग करने के मुद्रित करने के लिए, इस तरह fprintf उपयोग कर सकते हैं:
fprintf(stderr, "This prints to the Xcode debug console");
सरल और obj-C++ के साथ काम करना;) –
ऐसा लगता है कि यह आईओएस – Sergei
@ सर्गेई के लिए सी ++ में काम नहीं करता है, अब XCode 9.2 पर मेरे लिए काम करता है। ध्यान दें कि एनएसएलओजी आउटपुट में उपसर्ग के रूप में कुछ अतिरिक्त जानकारी जोड़ता है। हालांकि fprintf केवल वही है जो आप पैरामीटर के रूप में पास करते हैं। इसके अलावा fprintf एक \ n खुद को मुद्रित नहीं करता है। –
- 1. iPhone एप्लिकेशन सिम्युलेटर, डिवाइस
- 2. निकटता सेंसर 4 iPhone डिवाइस
- 3. iPhone - डिवाइस कैप्चर बटन धक्का
- 4. एंड्रॉइड: एक असली डिवाइस पर परीक्षण ऐप
- 5. 1 डिवाइस पर एकाधिक पुश नोटिफिकेशन - iPhone
- 6. iPhone
- 7. डिबगिंग (एडीबी) के लिए डिवाइस का पता लगाने
- 8. * डिवाइस * (एमुलेटर नहीं) पर एंड्रॉइड में मूल कोड डिबगिंग
- 9. फ़ोन पर डिबगिंग करते समय "डिवाइस की प्रतीक्षा"
- 10. जांच iphone डिवाइस पर पर्याप्त स्थान फ़ाइलें डाउनलोड
- 11. मेरे iphone
- 12. डिबगिंग
- 13. iPhone/iPod
- 14. असली पथ
- 15. कैसे iphone
- 16. iPhone
- 17. iphone
- 18. iPhone
- 19. iphone
- 20. iPhone
- 21. Iphone
- 22. iPhone
- 23. iPhone
- 24. iPhone
- 25. अलग स्टोरीबोर्ड iPhone/iPhone के रेटिना/iPad/iPad के रेटिना
- 26. क्या mach_absolute_time iPhone
- 27. क्रॉस iPhone
- 28. डिबगिंग मोनो अनुप्रयोगों
- 29. असली दुनिया में जावाकार्ड 3?
- 30. कैसे, लेकिन 'असली' थंबनेल
अगर आप बताएं कि आप ऐसा करना चाहते हैं यह मदद कर सकता है? NSLog() के बजाय आपको printf का उपयोग करने की आवश्यकता क्यों है? क्या ऐसा इसलिए है क्योंकि आप लाइब्रेरी का उपयोग कर रहे हैं जिसमें printf() कथन शामिल हैं? –
क्योंकि मेरे कोड का सबसे बड़ा हिस्सा यह सी कोड है। सार्वभौमिक, एक्सकोड में आईओएस सिम्युलेटर के तहत विंडोज, डायरॉइड, सिम्बियन, आईओएस इत्यादि के तहत चलता है और प्रिंटफ() काम करता है। , दस्तावेज के रूप में इतना printf() बहुत ज्यादा काम करता है – theWalker