SORU
15 AĞUSTOS 2009, CUMARTESİ


Nasıl küresel iPhone özel Durum İşleme uygulamak mı?

Bir NSException atmaz iPhone uygulamam bir kaza var. Kilitlenme raporları, hata nerede ve neden olduğunu tamamen belirsiz. Bana üst düzey bir özel durum neden olduğunu görmek işleyicisi bir yerde ayarlamak için akıllı bir yolu var mı? Sorunu kendim çoğaltmak edemem, ama benim beta kullanıcıları bir kaç kesinlikle.

Bu doğanın bir sorun işlemek için akıllı bir yolu nedir?

CEVAP
16 AĞUSTOS 2009, Pazar


Kök sebebinin ne olduğunu belirleme sorunu ile başa çıkmak için nasıl üst düzey özel durum işleyicisi ayarlamak için nasıl; ve. iki soru soruyorsun gibi görünüyor:

Bu özel yakalama birkaç farklı şekillerde yapılabilir, ama bunun için en iyi yaklaşım bir özel durum işleyicisi NSSetUncaughtExceptionHandler kullanarak ayarlamak gibi görünüyor.

Bir istisna uygulaması olarak ortaya çıktığında, varsayılan özel durum işleyicisi tarafından işlenir. Bu işleyici uygulaması kapanmadan önce konsola bir mesaj günlük fazla bir şey getirmiyor. Over-ride kendi ayarlayarak bu özel durum işlevi yukarıda belirtilen işleyicisi kullanarak yapabilirsiniz. Bu uygulamayı temsilci applicationDidFinishLaunching olacaktır yapmak için en iyi yer: yöntemi.

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    NSSetUncaughtExceptionHandler(&myExceptionHandler);
}

Özel bir işleyici ayarladıktan sonra, nedeni ne olduğunu belirlemek yardımcı varsayılan çıktı genişletmek isteyeceksiniz.

void myExceptionHandler(NSException *exception)
{
    NSArray *stack = [exception callStackReturnAddresses];
    NSLog(@"Stack trace: %@", stack);
}

Ne yazık ki iPhone) göre izlemesi güzel bir yığın üretme konusunda oldukça sınırlı görünüyor. Yukarıdaki kod bazı görünüşte önemsiz çıktı üretecektir; ancak, atos aracı ile bu çıkış çalıştırabilirsiniz, ve yararlı bir yığın izleme oluşturmak için olması gerekir.

Başka bir seçenek de izlemesi güzel bir yığın üretmek için yardımcı olacak this article yönergeleri otomatik olarak takip etmektir.

Bu beta test için dışarı gidiyor gibi tinker almak için çalışıyor olabilir.

Sorun kendini çoğaltmak mümkün, sadece kullanıcıların oldun söyledin. Bu durumda Apple bu teknik not yararlı olabilir:

http://developer.apple.com/iphone/library/technotes/tn2008/tn2151.html

GÜNCELLEMEBu post hala yararlı bilgiler içeriyor olsa da, içerdiği bazı bağlantılar ölü irrevertably. this alternatif yazı bilgi kullanılması tavsiye edilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • fufko

    fufko

    27 ŞUBAT 2006
  • Modus Recordings

    Modus Record

    26 Kasım 2008
  • sknbp

    sknbp

    16 Kasım 2006