XCode Düzenleyicisi, Konsolda - NSLog
çıktısını okuyabilir, ancak printf()
'u okuyamıyorum. Gerçek cihazda printf()
sonucunu okumak mümkün mü, simülatörde olduğu gibi mi?iPhone aygıtını hata ayıklama gerçek aygıt
cevap
En kolay çözüm projenizde küresel printf işlevi aşırı ve NSLog çıkışı ile değiştirmek olacaktır
int printf(const char * __restrict format, ...)
{
va_list args;
va_start(args,format);
NSLogv([NSString stringWithUTF8String:format], args) ;
va_end(args);
return 1;
}
Sohaib, büyük teşekkürler. Bu çözüm mükemmel bir şekilde çalışıyor ve tüm C kodlarını hiçbir değişiklik yapmadan bırakabiliyorum :) – theWalker
@skippy: Bu, doğru cevap olarak işaretlenmemeli midir? – newenglander
Bu kod parçasını nereye koymalıyız? – Raptor
Atla, printf(), c nesnesi için değil C nesnesinin çıkış ifadesidir, ayrıca gerçek aygıtta da printf() çalışmıyordur.
Amaç-C, C'nin sıkı bir üst kümesidir, bu yüzden printf() çok fazla belgelenmiş olarak çalışır. Ancak sahnelerin arkasındaki NSLog(), Skippy'nin neden sorun yarattığını gösteren printf() 'den daha fazlasını yapıyor. –
Sorunun aslında printf'in stdout'a yazdırdığını, NSLog'un ise stderr'e yazdırdığını düşünüyorum. –
Nick, fprintf (stderr, format, args); XCode Organizatör Konsolu altında çalışmaz. – theWalker
Cihazın konsoluna sadece yazdırmak için aşağıdaki komutu çalıştırabilirsiniz:
syslog(LOG_WARNING, "log string");
You Ayrıca syslog ve LOG_WARNING için <sys/syslog.h> #include olarak bildirilmesi gerekir.
Açıkça belirtmeden standart günlük kodlarını kullanabilirsiniz. – wxs
Evet, dediğim gibi, syslog ve LOG_WARNING sys/syslog.h dosyasında açık olarak bildirildi (< and > yanlış kullanım nedeniyle eklenemedi) –
Açık iOS 10 stdout Xcode'a gönderiliyor, bu yüzden artık syslog'a gerek yok. –
As Nick Lockwood, yukarıdaki yorumlardan birinde, printf'in stdout'a yazdırdığını ancak NSLog'un stderr'e yazdırdığını söyledi. Printf kullanarak yerine stderr (Xcode konsolu) yazdırmak için fprintf'i kullanabilirsiniz, bu gibi:
fprintf(stderr, "This prints to the Xcode debug console");
basit ve obj-C++ ile çalışıyor;) –
, iOS – Sergei
@Sergei için şu anda çalışmıyor, XCode 9.2 üzerinde çalışıyor. NSLog'un bir ön ek olarak çıktıya bazı ek bilgiler eklediğine dikkat edin. Ancak, fprintf yalnızca bir parametre olarak geçtiğinizi kaydeder. Ayrıca, fprintf kendi başına bir \ n yazmaz. –
- 1. IPhone gerçek aygıt otomasyon ortamı kurulumu
- 2. iPhone hata ayıklama: değişkenler güncel değil mi?
- 3. iOS 8.1 aygıtını kullanarak hata ayıklanamadı
- 4. glDrawArrays() üzerinde SIGKILL hata ayıklama. iPhone iOS
- 5. C# USB aygıtını algıla ClassCode (usb aygıt türü)
- 6. Hata ayıklama bir iPhone üzerinde belirsiz bir hata
- 7. Firefox'taki hata ayıklama hata ayıklama
- 8. Hata ayıklama yaparken CUDA cihaz kimlikleri değişiyor mu?
- 9. Mobil tarayıcılarda hata ayıklama?
- 10. Hata ayıklama CSS
- 11. Java Gerçek zamanlı hata ayıklama (oyun) Bu videoda
- 12. ASP.Net Core, bir hata ayıklayıcıda hata ayıklama değil hata ayıklama
- 13. timidity: Çıkış aygıtını açamadı
- 14. Hata ayıklama Pyparsing Dilbilgisi
- 15. Hata ayıklama .NET'de çağrılan işlev
- 16. DRBD aygıtını dizine bağlayamıyor
- 17. Hata ayıklama üzerinde uygulama, hata ayıklama sırasında değil
- 18. JavaScript [object] [Object] hata ayıklama
- 19. Eclipse kısayolu "hata ayıklama son hata ayıklama yapılandırması" (F11 değil)
- 20. Eclipse Java Hata ayıklama dosyaları ile hata ayıklama
- 21. Appcelerator :: Titanium :: Gerçek aygıt :: Imageview, uzak url'den güncelleştirilmiş resmi göstermiyor
- 22. Hata ayıklama, sürüm
- 23. Hata ayıklama Ember.js'den chrome
- 24. Win32 Hata Ayıklama Makroları
- 25. Hata ayıklama Java yöntemi
- 26. Xcode C++ hata ayıklama
- 27. Hata ayıklama döngüleri
- 28. Hata ayıklama 403'ler?
- 29. Hata ayıklama metaprogramları
- 30. Hata ayıklama outofmemoryexception
Bunu neden yapmak istediğinizi açıklarsanız yardımcı olabilirsiniz. Neden NSLog() yerine printf kullanmanız gerekiyor? Printf() ifadeleri içeren bir kitaplık kullandığınız için mi? –
Kodumun en büyük kısmı C kodudur. Evrensel olan, rüzgâr, droid, symbian, iOS vb. Altında çalışır. Ve printf() XCode'da iOS simülatörü altında çalışır. – theWalker