2011-05-07 113 views
0

我在項目中包含了three20庫。我正在使用TTThumbsViewController。一切都很好,直到我升級到Xcode 3.2.6和iOS 4.3。網格照片顯示正常,但只要我點擊一個拇指,應用程序就會崩潰。我確信這不是一個記憶問題。它在模擬器上工作正常。這裏是崩潰報告:應用程序崩潰 - EXC_CRASH(SIGABRT) - iOS 4.3 - three20

事故標識符:3C63956F-F718-468F-B113-116E457DEB4E
CrashReporter始終重點:32180af33b999869f98369f8d85412b799a88fdb
硬件型號:iPhone3,1
過程:MyApp的[15071]
路徑: /var/mobile/Applications/13C32157-F4CA-44BC-BB8F-D9A9FE9EAE38/MyApp.app/MyApp
標識符:MyApp
版本:??? (???)
編碼類型:ARM(母語)
父進程:的launchd [1]

日期/時間:2011-05-06 21:48:06.042 -0500
OS版本:iPhone OS 4.3(8F190)
報告版本:104

異常類型:EXC_CRASH(SIGABRT)
異常代碼:00000000,00000000
崩潰螺紋:0

線程0名:派息補丁隊列:com.apple.main線程
線程0毀損:
0 libsystem_kernel.dylib 0x00011a1c __pthread_kill + 8
1 libsystem_c.dylib 0x000333b4 pthread_kill + 52
2 libsystem_c.dylib 0x0002bbf8中止+ 72
3的libstdC++ .6.dylib 0x00044a64 __gnu_cxx :: __ verbose_terminate_handler()+ 376
4 libobjc.A.dylib 0x0000606c _objc_terminate + 104
5的libstdC++。6.dylib 0x00042e36 _ cxxabiv1 :: _terminate(無效(*)())+ 46
6 libstdC++。6.dylib 0x00042e8a std 。::終止()+ 10
7的libstdC++ 6.dylib 0x00042f5a __cxa_throw + 78
8 libobjc.A.dylib 0x00004c84 objc_exception_throw + 64
9的CoreFoundation 0x0009e48a + [NSException提高:格式:參數:] + 62
10的CoreFoundation 0x0009e4c4 + [NSException提高:格式:] + 28
11 QuartzCore 0x00001616 CALayerSetPosition(CALayer的*,CA :: VEC2常量&,布爾)+ 134
12 QuartzCore 0x00001584 - [CALayer的setPosition兩種:] + 32
13 QuartzCore 0x000014d0 - [CALayer setFrame:] + 384
14 UIKit 0x0000544e - [UIView(Geometry)setFrame:] + 182
15 MyApp 0x00078366 - [TTPhotoView layoutSubviews](TTPhotoView。米:221)
16的UIKit 0x000055f4 - [UIView的(CALayerDelegate) layoutSublayersOfLayer:] + 20
17的CoreFoundation 0x0000befc - [NSObject的(NSObject的)performSelector:withObject:] + 16
18 QuartzCore 0x00002bae - [CALayer的layoutSublayers] + 114

任何想法的人?

感謝

+1

「我確定這不是內存問題,但它在模擬器上工作正常。」它在模擬器上的工作很好*不*意味着沒有內存問題 - 一旦你開始跺腳內存,你進入未定義的行爲土地,任何事情都可能發生,包括崩潰和無聲成功。 – 2011-05-07 04:19:33

+0

我同意..但我跑了構建和分析,儀器與nszombieenabled,並找不到任何內存相關的問題.. – Nanz 2011-05-07 04:42:30

+0

什麼是異常被拋出?它應該被記錄到控制檯,並且知道它究竟是什麼將幫助你找出錯誤。 – smorgan 2011-05-07 05:02:36

回答

3

是的..這是一個NaN被通過。基本上,如果你使用默認爲標題變量賦予一個空值的構造函數(MockPhotoSource類),它會拋出這個異常。所以我使用了其他構造函數,併爲標題參數賦予了空白值

4

功能CALayerSetPosition拋出NSException類型的異常,也沒有人正在迎頭趕上,所以您的應用程序得到終止。請嘗試將隨時待命,此代碼-[UIView(Geometry) setFrame:]功能-[TTPhotoView layoutSubviews](這應該是對TTPhotoView.m的221線)內:

@try 
{ 
    [myUIView setFrame:someFrame]; 
} 
@catch(NSException *exception) 
{ 
    NSLog(@"Caught exception: %@", exception); 
} 

這應該給你,爲什麼異常被拋出的更多信息;最有可能的是,你傳遞了一個無效參數或其他東西。

+0

這個連同捕獲內的斷點是非常有幫助的,謝謝! – keisar 2014-07-02 12:16:02

0

我還剛剛看到這個異常,並且按照Adam的說法,我認爲問題在於NaN被作爲參數傳入,這引發了異常。如果這是我面對的同樣的問題,我可以評論這條線來解決問題(AFAICT線只處理加載微調器進度指示器)。所以,如果你願意生活沒有那個,你可以解決它