2013-05-05 11 views
23
Ben tüm olası uyarıları yakalamak için derleyici için -Weverything kullanmak ister

devre dışı, ama bazen düzeltmek istemiyorum uyarıları olsun. Bu özel uyarıları meydana geldikçe nasıl elimden çıkarabilirim?Clang: -Weverything ile başlar ve elle belli uyarıları

+2

Not şeyleri ele almak için en iyi yolu: http://programmers.stackexchange.com/questions/122608/clang-warning-flags-for-objective-c-development/124574#124574 –

cevap

26

Sen -Wno-XYZ kullanarak bireysel uyarıları devre dışı bırakabilir, uyarı özelliğin adını olma XYZ devre dışı bırakılması. Sana tahmin ediyorum

+3

Tamam, ama Xcode'daki sarı uyarı balonundan doğru şekilde nasıl 'XYZ' aldığımı biliyor musunuz? Lütfen soruna "Xcode" u geri getirin. Bu onun önemli bir parçası oldu :) – 7cows

+1

@ 7cows Hayır, bu ** derleyici ** bayrakları ayarlamak istediğiniz, gerçekten bir Xcode soru değil. Eh, uyarılar da dahil olmak üzere tüm anahtarları ve seçenekleri listeleyen "clang" için bir kılavuz var. İşte burada: [link] (http://clang.llvm.org/docs/UsersManual.html#individual-warning-groups) –

+1

@ 7cows xcode'u etiketlere geri koymayın, bu ** gerçekten değil Xcode sorusu. Ayrıca, cevabı bu soruya koymanız gerekmiyor - bu yüzden cevaplar için ayrı yayınlarımız var. –

1

etkinleştirmek/bireysel uyarıları devre dışı bırakması ve kodda uyarıyı devre dışı bırakmak istediğiniz için inşa ayarlarını güncellemek için biliyorum.

#ifdef TESTFLIGHT_USERTRACKING 

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wdeprecated-declarations" 
#pragma clang diagnostic ignored "-Wdeprecated-implementations" 

[TestFlight setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]]; 

#pragma clang diagnostic pop 

#endif 
Sonra sağ sorunlardan birini tıklayın ve "Günlüğü'nde Ortaya" seçeneğini inşa etmek zorunda XCode 5'te
16

XCode

ardından "Tümü" de alıyoruz Orta Bölmesi sekmesini ayarlayın: İşte bir örnek günlüğünde görüntülenen sorunlar.

Sonra sağa "Hamburger" ikonunu ve nihayet Uyarı tam bir tanımını var aşağı kaydırma.

/.../SettingsViewController.m:91:58: warning: creating selector for nonexistent method 'setSegueIdentifier:' [-Wselector] 
    [segue.destinationViewController performSelector:@selector(setSegueIdentifier:) 

Bu yüzden benim durumumda iş şu şekilde oluyor.

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wselector" 
... 
#pragma clang diagnostic pop 
+2

Bir süre için derleyici uyarısına özel bayrağı nasıl bulacağımı arıyorum! Bunun için teşekkürler - çok yararlı! – Barjavel

3

Ben sadece tüm Clang uyarıları ve bunları devre dışı bayrakları listeleyen bir siteye rastladım (#pragma clang diagnostic ignored "-Wxyz" kullanarak):

http://goo.gl/hwwIUa (siz onu ziyaret ederken URL'yi kısalttık anlayacaksınız). yaklaşımınız gerçekten değil