首先这是我的崩溃日志
Thread 1 name: Dispatch queue: com.apple.root.default-priority
Thread 1 Crashed:
0 CoreFoundation 0x3b8afc30 __CFBasicHashRehash + 796
1 CoreFoundation 0x3b8b0e48 __CFBasicHashAddValue + 88
2 CoreFoundation 0x3b7db194 CFBasicHashAddValue + 3048
3 CoreFoundation 0x3b7deebc CFSetAddValue + 112
4 CoreData 0x36ea45b0 - [NSManagedObjectContext(_NSInternalAdditions) _insertObjectWithGlobalID:globalID:] + 172
5 CoreData 0x36e9c9bc -[NSManagedObjectContext insertObject:] + 136
6 CoreData 0x36e8c6d2 -[NSManagedObject initWithEntity:insertIntoManagedObjectContext:] + 646
7 CoreData 0x36e78d74 +[NSEntityDescription insertNewObjectForEntityForName:inManagedObjectContext:] + 176
8 XYZ Orders 0x000f8182 -[ITMLoginVC traverseElement:] (ITMLoginVC.m:1551)
9 XYZ Orders 0x000f7eba -[ITMLoginVC traverseElement:] (ITMLoginVC.m:1506)
10 XYZ Orders 0x000f5970 -[ITMLoginVC getAllCustomerValues] (ITMLoginVC.m:903)
11 libdispatch.dylib 0x39b8911c _dispatch_call_block_and_release + 8
12 libdispatch.dylib 0x39b8d95c _dispatch_root_queue_drain + 248
13 libdispatch.dylib 0x39b8dabc _dispatch_worker_thread2 + 80
14 libsystem_c.dylib 0x368f2a0e _pthread_wqthread + 358
15 libsystem_c.dylib 0x368f28a0 start_wqthread + 4
第 903 行:
if(ttbXML.rootXMLElement)
{
[self traverseElement:ttbXML.rootXMLElement]; //line 903
}
第 1551 行:
ITMAllCustomerAddresses *allCustAddress =(ITMAllCustomerAddresses *)[NSEntityDescription insertNewObjectForEntityForName:@"ITMAllCustomerAddresses"
inManagedObjectContext:self.managedObjectContext];
第 1506 行:
[self traverseElement:element->firstChild];
我正在使用 TBXML 进行解析。在 StackOverflow 上,人们建议在大型 XML 的情况下使用 TBXML。我使用了 NSXMLParser,但它很慢而且崩溃了。这也崩溃了,但它的速度很快,每天崩溃一次或两次。这又是一个罕见的案例。这是我今天第二次得到这个。所以我想我可以发布这个。我认为我的 managedobjectcontext 没有正确初始化,所以我现在正在这样做:
if (!self.managedObjectContext)
{
self.managedObjectContext = self.appDelegate.managedObjectContext;
}
如果有人对为什么它的行为有任何想法,请告诉我。如果您需要更多信息,请告诉我。谢谢。它在 iOS6 中,我正在测试 iPhone 设备。它是一个内部应用程序。在模拟器上运行良好。