Tôi định kỳ reproing một vụ tai nạn trên một xây dựng gỡ lỗi chạy trên iPhone của tôi liên quan đến một UIScrollView không có mã của tôi trong khung stack. Tôi muốn biết nếu nó là một lỗi trong mã của tôi hoặc Apple, và tôi không thể truy vấn cơ sở dữ liệu lỗi của Apple để xem nếu nó đã được báo cáo. Backtrace hiển thị:Làm cách nào để xác định xem sự cố UIScrollView có nằm trong mã của tôi hay Apple không?
#0 0x30218060 in ___forwarding___()
#1 0x3020eda0 in __forwarding_prep_0___()
#2 0x309c4ce8 in -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded]()
#3 0x3025af60 in -[NSObject performSelector:withObject:]()
#4 0x3098ea94 in -[UIAnimator stopAnimation:]()
#5 0x3098e5a8 in -[UIAnimator(Static) _advance:]()
#6 0x3098e460 in LCDHeartbeatCallback()
#7 0x32047fe8 in HeartbeatVBLCallback()
#8 0x32a1c3ec in IOMobileFramebufferNotifyFunc()
#9 0x3188a74c in IODispatchCalloutFromCFMessage()
#10 0x3020d0b0 in __CFMachPortPerform()
#11 0x30254a76 in CFRunLoopRunSpecific()
#12 0x3025416a in CFRunLoopRunInMode()
#13 0x320452a4 in GSEventRunModal()
#14 0x308f037c in -[UIApplication _run]()
#15 0x308eea94 in UIApplicationMain()
#16 0x0000280c in main (argc=1, argv=0x2ffff58c) at /Users/esilver/Documents/Husband Material/main.m:14
Vấn đề rõ ràng là trong UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded
. GDB báo cáo:
-[MyViewController respondsToSelector:]: message sent to deallocated instance 0x5d77ad0
Trong MyViewController, tôi có một cuộc gọi đến di chuyển một tableView:
[self.tableView scrollToRowAtIndexPath:scrollIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];
Bởi vì nó sinh động, đó là rõ ràng có thể là quan điểm có thể nhận được popped tắt bộ điều khiển chuyển hướng trước khi di chuyển hoạt ảnh hoàn tất. Có vẻ như công việc của UIView phải hủy hoặc đợi cho bất kỳ thao tác cuộn đang chờ xử lý nào khi nó được dỡ xuống. Vì vậy, tôi nghĩ rằng đây là một lỗi trong mã của Apple.
Hoặc tôi có nhầm lẫn không và có một số loại kiểm tra chế độ xem của tôi phải kiểm tra xem nó có cuộn trước khi dỡ hàng hay tôi hoàn toàn hiểu sai sự cố này không?
FYI, lỗi này cũng chỉ xuất hiện để repro trong điều kiện bộ nhớ thấp, tức là tôi đã bắt đầu nhận được callReceiveMemoryWarning gọi lại.
Cảm ơn tất cả,
Eric