SORU
21 EYLÜL 2009, PAZARTESİ


Kullanılmayan yöntemleri tespit etmek için nasıl ve #Objective-C alma

Bir iPhone uygulaması üzerinde uzun bir süre çalıştıktan sonra, benim kod oldukça kirli, çeşitli içeren olduğunu fark ettim alma ve ya hiç denilen yararlı olmayan yöntemler.

Eğer ya da kod o işe yaramaz hatları tespit etmek için herhangi bir derleyici Direktifi yolu varsa bilmek isterim. Böyle büyük mükafat bu tespit için herhangi bir araç var mı?

CEVAP
21 EYLÜL 2009, PAZARTESİ


Böyle büyük mükafat (BM)kullanılmayan kod bazı türleri sizi uyarmak belirli bir derleyici uyarı ayarlarını kontrol etmenizi sağlar. (Kaynak listesinde projeyi seçin ve ^ Dosya . Bilgi almak, Yapı sekmesini seçin.) İşte ilginizi çekebilecek birkaç benim için Çınlama ve GCC 4.2 için):

  • Kullanılmayan Fonksiyonlar
  • Kullanılmayan Parametreler
  • Kullanılmayan Değerler

Kullanılmayan ithalat tespiti için herhangi bir seçenek göremiyorum, ama derleme hatası/uyarısı verene kadar biraz daha basit — düşük teknoloji yaklaşımı sadece import deyimleri kapatmaktır.

Kullanılmayan Nesnel-C yöntemleri mesajları dinamik olarak gönderilir çünkü kullanılmayan C fonksiyonları çok daha tespit etmek zordur. Uyarı veya bir hata potansiyel bir sorun olduğunu söyleyebilirim, ama bir eksikliği çalışma zamanı hataları olmayacak garantisi yok.

< / ^ hr .

Düzenleme:(Potansiyel olarak) kullanılmayan yöntemleri tespit etmek için bir başka iyi yolu gerçek infaz kod kapsamını incelemektir. Bu genellikle otomatik birim testi ile birlikte yapılır, ama olmak zorunda değildir.

This blog post birim test ve kod kapsamı Güncellemelerinden kullanarak için iyi bir tanıtım. Bölümügcovsadece arada kodu GCC ile oluşturulan, hangi ile çalışır () araçlı kodu oluşturmak için böyle büyük mükafat almak açıklar idam edilmiştir. nasıl kaydedebilir Eğer bir araçlı inşa uygulamanız için bir spin simülatörü çalıştırın gcov üzerinde görebilirsiniz ne kodu olduğunu idam kullanarak bir araç gibi CoverStory (oldukça basit bir GUI) veya lcov (Perl komut dosyaları oluşturmak için HTML raporları).

Her SVN commit sonra gcov CHDataStructures.framework lcov ve otomatik oluşturmak coverage reports kullanıyorum. Yine akılsızca kodu nedir, kesin bir ölçü olarak yürütülen kapsama tedavi olduğunu unutmayın, "ölü", ama kesinlikle daha fazla araştırma yöntemleri tanımlamak.

Ölü kod kaldırmak için çalışıyoruz beri son olarak, bu ÇOK ilginç bir soru da bulabilirsiniz sanırım

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ADDVOiCE

    ADDVOiCE

    28 Mayıs 2009
  • Maya Learning Channel

    Maya Learnin

    23 HAZİRAN 2010
  • Santozz Yazz

    Santozz Yazz

    23 Mart 2014