, когда он входит в метод NSString dataUsingEncoding
, сбой происходит очень редко.
исходный код:
NSData *latin1Data = [appName dataUsingEncoding:NSUTF8StringEncoding];
стек вызовов:
MACH_Exception Crashed with mach exception EXC_BAD_ACCESS
Thread 0 name: (null)
0 libobjc.A objc_object::release() (in libobjc.A.dylib)
1 CoreFoundation _common_removeAllObjects (in CoreFoundation) 188
2 CoreFoundation -[__NSArrayM dealloc] (in CoreFoundation) 28
3 libobjc.A (anonymous namespace)::AutoreleasePoolPage::pop(void*) (in libobjc.A.dylib) 704
4 libdispatch __dispatch_root_queue_drain (in libdispatch.dylib) 1148
5 libdispatch __dispatch_worker_thread3 (in libdispatch.dylib) 124
6 libsystem_pthread __pthread_wqthread (in libsystem_pthread.dylib) 1288
7 libobjc.A _objc_msgSend (in libobjc.A.dylib) 40
8 Foundation -[NSConcreteMutableData initWithLength:] (in Foundation) 316
9 Foundation -[NSString(NSStringOtherEncodings) dataUsingEncoding:allowLossyConversion:] (in Foundation)
10 xxxApp -[ xxxClass xxxMethod] xxxFile.mm line:300
строка 300 файла xxxFile.mm:
NSData *latin1Data = [appName dataUsingEncoding:NSUTF8StringEncoding];
Редактировать, скопировано из комментария:
295 -(NSString *)userAgentString {
296 NSBundle *bundle = [NSBundle bundleForClass:[self class]];
297 // Attempt to find a name for this application
298 NSString *appName = [bundle objectForInfoDictionaryKey:@"CFBundleName"];
299
300 NSData *latin1Data = [appName dataUsingEncoding:NSUTF8StringEncoding];
сбой в строке 300 при вызове функции userAgentString.