SORU
20 EKİM 2011, PERŞEMBE


Böyle büyük mükafat 4.2't symbolicate çağrı yığını değil hata ayıklama

İOS 5 simülatörü/cihazı 4.2 hata ayıklama Güncellemelerinden ile ilgili bir sorun var. İOS 4'te.x, aşağıdaki kodu Tamam çalışır:

NSArray *arr=[NSArray array];
[arr objectAtIndex:100];

Ama 5, sadece bana verir iOS yığın izleme hex numaraları:

*** First throw call stack:
(0x16b4052 0x1845d0a 0x16a0674 0x294c 0x6f89d6 0x6f98a6 0x708743 0x7091f8 0x7fcaa9 0x2257fa9 0x16881c5 0x15ed022 0x15eb90a 0x15eadb4 0x15eaccb 0x6f02a7 0x6faa93 0x2889 0x2805)

Teşekkürler.

CEVAP
25 EKİM 2011, Salı


Denedim, hiçbir şey bu (denedim derleyici, hem de hata, vb.)düzeltmek istiyorum İOS için böyle büyük mükafat yükseltmeden sonra 5 güncelleme, hiçbir yığın izleri çalışır gibiydi.

Ancak, etkili bir çözüm - benim kendi özel durum işleyicisi oluşturma başka nedenlerle de yararlı olan) buldum. İlk olarak, hata işleme ve yanı sıra başka ne yapmak istiyorsun) konsola çıktı bir işlev oluşturun:

void uncaughtExceptionHandler(NSException *exception) {
    NSLog(@"CRASH: %@", exception);
    NSLog(@"Stack Trace: %@", [exception callStackSymbols]);
    // Internal error reporting
}

Ardından, app temsilci için özel durum işleyicisi ekleyin:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{   
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
    // Normal launch stuff
}

İşte bu!

Eğer bu işe yaramaz ise, o zaman vardırsadece iki olası sebep:

  1. Bir şey NSSetUncaughtExceptionHandler arama (tüm uygulama için tek bir işleyici olabilir) üzerine yazma. Örneğin, bazı 3. parti kütüphaneler kendi uncaughtExceptionHandler ayarlayın. Yani, didFinishLaunchingWithOptions fonksiyon SONUNDA ayarlamayı deneyin (veya seçmeli olarak 3. parti kütüphaneler devre dışı bırakma). Ya da daha iyisi NSSetUncaughtExceptionHandler sembolik bir kesme noktası hızlı bir şekilde kimin aradığını görmek için ayarlayın. Yapmak isteyebilirsiniz, mevcut bir değiştirmek yerine bir tane daha ekliyor.
  2. Aslında bir özel durumu oluşuyor değilsin (örneğin, EXC_BAD_ACCESSdeğilbir istisna; @kredi Erik B yorumları, aşağıda)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cartoonium

    Cartoonium

    11 NİSAN 2011
  • Kenneth Håkonsen

    Kenneth Håk

    13 Mart 2011
  • sinumatic

    sinumatic

    19 Aralık 2006