Dostałem kilka raportów o awariach związanych z UICollectionView w iOS 7. Nie jestem w stanie konsekwentnie odtworzyć tego błędu.UICollectionView crash na unhighlightAllItems
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0x91c4392b
Crashed Thread: 0
Application Specific Information:
*** Terminating app due to uncaught exception '', reason: ''
Thread 0 Crashed:
0 libobjc.A.dylib 0x39dd2b26 objc_msgSend + 6
1 UIKit 0x31fd5eef -[UICollectionView cellForItemAtIndexPath:] + 111
2 UIKit 0x32060bfd -[UICollectionView _unhighlightItemAtIndexPath:animated:notifyDelegate:] + 149
3 UIKit 0x32383947 -[UICollectionView _unhighlightAllItems] + 151
4 UIKit 0x3205f9fb -[UICollectionView touchesBegan:withEvent:] + 367
5 UIKit 0x31fcb101 forwardTouchMethod + 233
6 UIKit 0x31fcb101 forwardTouchMethod + 233
7 UIKit 0x31e3be4b _UIGestureRecognizerUpdate + 5523
8 UIKit 0x31e73c41 -[UIWindow _sendGesturesForEvent:] + 773
9 UIKit 0x31e735e7 -[UIWindow sendEvent:] + 667
10 UIKit 0x31e48a25 -[UIApplication sendEvent:] + 197
11 UIKit 0x31e47221 _UIApplicationHandleEventQueue + 7097
12 CoreFoundation 0x2f69e18b __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
13 CoreFoundation 0x2f69d6e1 __CFRunLoopDoSources0 + 341
14 CoreFoundation 0x2f69be4f __CFRunLoopRun + 623
15 CoreFoundation 0x2f606ce7 CFRunLoopRunSpecific + 523
16 CoreFoundation 0x2f606acb CFRunLoopRunInMode + 107
17 GraphicsServices 0x342f4283 GSEventRunModal + 139
18 UIKit 0x31ea8a41 UIApplicationMain + 1137
19 JackThreadsIpad 0x000922b7 main (main.m:16)
UICollectionViewCells w aplikacji mają wspólną nadklasę, która zarządza podświetlaniem. Gdy komórka jest podświetlona, zmienia się alfa.
- (void)setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted];
if (highlighted) {
self.alpha = 0.8;
} else {
self.alpha = 1.0;
}
}
Czy wywołanie [super setHighlighted: highlighted] może spowodować awarię? Aplikacja została skompilowana i przesłana z XCode 4 i dzieje się tylko na iOS 7. Wszelkie inne sugestie, aby dowiedzieć się, gdzie to się dzieje. Dzięki za pomoc.
Edycja: Udało mi się złapać to w debugerze, ale nadal nie jest powtarzalne. Awaria:
[NSIndexPath section] message sent to deallocated instance XXXXXXXX
Czy dodałeś punkty przerwania w setHighlighted i cellForItemAtIndexPath? Co się stanie, gdy się przejdzie, gdzie się zawiesza. – Tim
Nie widziałem tej awarii w moim środowisku programistycznym - te i podobne raporty o awariach pojawiły się w programie iTunes Connect i Crittercism. –
Niestety, przegapiłem linię, w której powiedziałeś, że nie możesz jej odtworzyć. – Tim