自ios7.1与NSString(NSExtendedStringDrawing)一起随机崩溃drawWithRect:options:attributes:context

时间:2014-04-25 06:56:22

标签: ios crash-reports crash-dumps ios7.1

我的一些用户在按下"搜索按钮后,在ios7.1上升级设备后报告系统崩溃。在应用程序中。 不幸的是,我无法在运行ios7.1或7.1.1的设备上重现此错误

这里是代码:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    [searchBar resignFirstResponder];

    if (searchBar.text.length > 0)
    {
        [self loadingStartAnimating];
        [NSThread detachNewThreadSelector:@selector(updateSearchTable:) toTarget:self withObject:nil];  
    }   
}



-(void)updateSearchTable:(id)data
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    [searchViewController updateWithString:[self cleanString:theSearchBar.text]];
    [pool release];
}
在searchViewController中的

,它是用包含表视图的xib构建的:

-(void)updateWithString:(NSString*)searchText
{
    [self.searchWikiList removeAllObjects];

    SQLManager *sq = [[SQLManager alloc] initDatabase];
    self.searchWikiList = [sq allocWikisFromDatabase:searchText mode:2];
        [sq release];

    [self.iPadSearchTableView reloadData];
    [self.iPadSearchTableView setContentOffset:CGPointMake(0, 0) animated:NO];
    [self.view setHidden:NO];
    [self.iPadViewController loadingStopAnimating];

}

一位用户发送了以下我已签名的崩溃日志。有人可以帮我弄清楚会去哪一个吗?

我不明白的是,这是一个" doesNotRecognizeSelector"异常,但在" OS"代码(我当然没有写自己的代码)。也许在xib文件中某处出现错误?

Thread 14 Crashed:
0   libsystem_c.dylib               0x3b75206b __abort + 103
1   libsystem_c.dylib               0x3b752001 abort + 85
2   libc++abi.dylib                 0x3aba098b abort_message + 71
3   libc++abi.dylib                 0x3abb96e3 default_terminate_handler() + 251
4   libobjc.A.dylib                 0x3b1ecf7b _objc_terminate() + 191
5   libc++abi.dylib                 0x3abb71b1 std::__terminate(void (*)()) + 77
6   libc++abi.dylib                 0x3abb6a05 __cxa_throw + 113
7   libobjc.A.dylib                 0x3b1ecdb7 objc_exception_throw + 247
8   CoreFoundation                  0x3061c833 -[NSObject(NSObject) doesNotRecognizeSelector:] + 199
9   CoreFoundation                  0x3061b12b ___forwarding___ + 703
10  CoreFoundation                  0x3056a0d4 __forwarding_prep_0___ + 20
11  UIFoundation                    0x384fe911 __NSStringDrawingEngine + 12249
12  UIFoundation                    0x384fb85f -[NSString(NSExtendedStringDrawing) drawWithRect:options:attributes:context:] + 147
13  UIKit                           0x32e612c5 -[UILabel _drawTextInRect:baselineCalculationOnly:] + 4221
14  UIKit                           0x32ec7705 -[UILabel drawTextInRect:] + 497
15  UIKit                           0x32ec7507 -[UILabel drawRect:] + 75
16  UIKit                           0x32ec74a5 -[UIView(CALayerDelegate) drawLayer:inContext:] + 369
17  QuartzCore                      0x32af3185 -[CALayer drawInContext:] + 97
18  QuartzCore                      0x32adcc59 CABackingStoreUpdate_ + 1857
19  QuartzCore                      0x32bb8c19 ___ZN2CA5Layer8display_Ev_block_invoke + 49
20  QuartzCore                      0x32adc509 x_blame_allocations + 81
21  QuartzCore                      0x32adc1bb CA::Layer::display_() + 1115
22  QuartzCore                      0x32abfd3d CA::Layer::display_if_needed(CA::Transaction*) + 205
23  QuartzCore                      0x32abf9d5 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 21
24  QuartzCore                      0x32abf3e1 CA::Context::commit_transaction(CA::Transaction*) + 225
25  QuartzCore                      0x32abf1f3 CA::Transaction::commit() + 311
26  QuartzCore                      0x32aec8df CA::Transaction::release_thread(void*) + 159
27  libsystem_pthread.dylib         0x3b8076cf _pthread_tsd_cleanup + 163
28  libsystem_pthread.dylib         0x3b80744f _pthread_exit + 83
29  libsystem_pthread.dylib         0x3b8081b5 pthread_exit + 25
30  Foundation                      0x30f556ff +[NSThread exit] + 7
31  Foundation                      0x31001a29 __NSThread__main__ + 1089
32  libsystem_pthread.dylib         0x3b808957 _pthread_body + 139
33  libsystem_pthread.dylib         0x3b8088c7 _pthread_start + 99
34  libsystem_pthread.dylib         0x3b806ae4 thread_start + 4

2 个答案:

答案 0 :(得分:0)

在iOS 7.1 / 7.11的制作设备上也出现了这种情况,主要是在iPhone 4 / 4S上(但不仅限于此)。

异常原因始终为-[_UIFontCacheKey set]: unrecognized selector sent to instance 0x1551b0a0,请参阅下面的调用堆栈。

当它发生时,它总是在同一个地方 - 当应用程序使用后台线程重绘视图时。所以也许它确实与它有关,正如@iOS Dev指出的那样。

#0  CoreFoundation                      0030449F0B <redacted>()
#1  libobjc.A.dylib                     003ABE0CE7 objc_exception_throw()
#2  CoreFoundation                      003044D837 -[NSObject doesNotRecognizeSelector:]
#3  CoreFoundation                      003044C137 <redacted>()
#4  CoreFoundation                      003039B098 _CF_forwarding_prep_0()
#5  UIFoundation                        00380C83FD <redacted>()
#6  UIFoundation                        00380C6863 -[NSString drawWithRect:options:attributes:context:]
#7  UIKit                               0032C922C9 -[UILabel _drawTextInRect:baselineCalculationOnly:]
#8  UIKit                               0032CF8709 -[UILabel drawTextInRect:]
#9  UIKit                               0032CF850B -[UILabel drawRect:]
#10 UIKit                               0032CF84A9 -[UIView drawLayer:inContext:]
#11 QuartzCore                          0032924189 -[CALayer drawInContext:]
#12 QuartzCore                          003290DC5B <redacted>()
#13 QuartzCore                          00329E9C1D <redacted>()
#14 QuartzCore                          003290D50B <redacted>()
#15 QuartzCore                          003290D1BF <redacted>()
#16 QuartzCore                          00328F0D41 <redacted>()
#17 QuartzCore                          00328F09D9 <redacted>()
#18 QuartzCore                          00328F03E5 <redacted>()
#19 QuartzCore                          00328F01F7 <redacted>()
#20 QuartzCore                          00328E9F1D <redacted>()
#21 CoreFoundation                      0030415039 <redacted>()
#22 CoreFoundation                      00304129C7 <redacted>()
#23 CoreFoundation                      0030412D13 <redacted>()
#24 CoreFoundation                      003037D769 CFRunLoopRunSpecific()
#25 CoreFoundation                      003037D54B CFRunLoopRunInMode()
#26 GraphicsServices                    00352EA6D3 GSEventRunModal()
#27 UIKit                               0032CDC891 UIApplicationMain()
#28 myApp                               00000633AB main()
#29 libdyld.dylib                       003B0DEAB7 <redacted>()

答案 1 :(得分:0)

我遇到了同样的问题。我通过删除项目的临时文件和派生数据来修复它。

<强> 1。在窗口中 - &gt;组织者 - &gt;项目,选择项目的派生数据,然后单击“删除” 2.在设备/模拟器上删除项目的应用程序 3.按“Command + Shift + K”清除项目 4.重新启动Xcode。

我不知道发生了什么,但问题已经解决了。

希望这有帮助。

相关问题