NSLog kullanılmamalıdır doğru() üretim kodu?
Bu site bu bir kaç kez söylendi, ama bu gerçekten böyledir emin olmak istedim.
Benim kod boyunca NSLog işlev çağrıları serpin edebilmek için bekliyordum, ve o böyle büyük mükafat/gcc Yayın/Dağıtım yapılar oluştururken otomatik olarak o çağırıyor şerit olacaktır.
Bu kullanmaktan kaçınmak gerekir? Eğer öyleyse, alternatifler arasında yaşanan en yaygın Objective-C programcıları nelerdir?
CEVAP
Ön işlemci makroları gerçekten hata ayıklama için harika. Hiçbir şey NSLog bir sorun var () ama daha basit işlevselliği ile kendi günlük fonksiyonlarınızı tanımlamak için. Burada kullandığımız, dosya adı ve satır aşağı daha kolay günlük ifadeleri parça numarasını içerir.
#define DEBUG_MODE
#ifdef DEBUG_MODE
#define DebugLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DebugLog( s, ... )
#endif
Daha kolay kendi dosyası yerine önek başlığında tüm bu deyimi koymak için buldum. Eğer isteseydin, DebugLog normal ile Objective-C nesne etkileşim alarak daha karmaşık günlük bir sistem inşa edebilirsin. Mesela, sen bir günlük sınıf yazar kendi günlük dosyası (veya veritabanı) ve içerir bir 'öncelik' argümanı olabilir ayarlamak için, çalışma zamanında çok hata ayıklama iletileri gösterilmez senin sürüm Sürüm ama hata mesajları (eğer yaptığın bu sen-ebil yapmak DebugLog(), WarningLog () ve benzeri).
Oh, ve #define DEBUG_MODE
yeniden kullanılan uygulama farklı yerlerde olabilir unutmayın. Benim uygulamada örneğin, lisans anahtarı kontrolleri devre dışı bırakmak ve sadece Uygulama Eğer belli bir tarihten önce ise çalışmasına izin vermek için kullanıyorum. Bu benim parçası üzerinde en az çaba ile, tamamen işlevsel bir zaman sınırlı bir beta dağıtılmasını sağlar.
HTTP durum doğru oturum açma sayfası i...
Nasıl kod geliştirme ve üretim kodu ko...
Python tanımlamak için doğru bir şekil...
Üretim gelincik dizin oluşturma kodu...
Kronometre üretim kodu kullanılabilir ...