그래서 내 앱에서 XML 웹 서비스의 데이터를 검색합니다. 매우 거대한. 최대 30-40000 개의 레코드까지. 시뮬레이터에서 잘 작동합니다. 그러나 장치에 그것은 부서지고있다. NSXMLParser를 사용합니다. didStartElement, didEndElement. 그래서 어떤 시점에서 충돌합니다. 그러나 나는이 메인 스레드를 깨지 않기 위해 백그라운드 스레드에서 이것을 수행하고있다. 또한 iOS가 10 초 이상 지속되면 앱을 시작하지 못하게합니다. 그래서 어떤 생각을 해결할 수있는 방법. 나는이 시간에 있었지만 해결책은 없었다. 어떤 도움을 주시면 감사하겠습니다. 감사.ASMX 웹 서비스에서 XML로 반환 된 데이터를 iPhone/iPad에 충돌 어플리케이션
0 CoreFoundation 0x3baa839c __CFBasicHashAddValue + 1452
1 CoreFoundation 0x3b9d2194 CFBasicHashAddValue + 3048
2 CoreFoundation 0x3b9d5ebc CFSetAddValue + 112
3 CoreData 0x3709b5b0 -[NSManagedObjectContext(_NSInternalAdditions) _insertObjectWithGlobalID:globalID:] + 172
4 CoreData 0x370939bc -[NSManagedObjectContext insertObject:] + 136
5 CoreData 0x370836d2 -[NSManagedObject initWithEntity:insertIntoManagedObjectContext:] + 646
6 CoreData 0x3706fd74 +[NSEntityDescription insertNewObjectForEntityForName:inManagedObjectContext:] + 176
7 XYZ Orders 0x00146c68 -[ITMParser parser:didEndElement:namespaceURI:qualifiedName:] (ITMParser.m:393)
8 Foundation 0x36898a82 _endElementNs + 298
9 libxml2.2.dylib 0x3ad8de5a xmlParseEndTag2 + 614
10 libxml2.2.dylib 0x3ad8f546 xmlParseTryOrFinish + 1658
11 libxml2.2.dylib 0x3ad8ece8 xmlParseChunk + 208
12 Foundation 0x3689755e -[NSXMLParser parse] + 482
13 XYZ Orders 0x0017a4c4 -[ITMLoginVC getAllCustomerValues] (ITMLoginVC.m:822)
14 XYZ Orders 0x00176a6c __25-[ITMLoginVC viewDidLoad]_block_invoke_0 (ITMLoginVC.m:218)
15 libdispatch.dylib 0x39d8011c _dispatch_call_block_and_release + 8
16 libdispatch.dylib 0x39d8495c _dispatch_root_queue_drain + 248
17 libdispatch.dylib 0x39d84abc _dispatch_worker_thread2 + 80
18 libsystem_c.dylib 0x36ae9a0e _pthread_wqthread + 358
19 libsystem_c.dylib 0x36ae98a0 start_wqthread + 4
- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if([elementName isEqualToString:@"NAllAddresses"])
{
NSString *[email protected]"";
self.managedObjectContext = appDelegate.managedObjectContext;
//The below line happens to be the line number 393.
ITMAllCustomerAddresses *allCustAddress =(ITMAllCustomerAddresses *)[NSEntityDescription
insertNewObjectForEntityForName:@"ITMAllCustomerAddresses"
inManagedObjectContext:self.managedObjectContext];
allCustAddress.allAddID = [self numberValue:[self.mutableDictionary objectForKey:@"AllAddID"]];
allCustAddress.allCustID = [self numberValue:[self.mutableDictionary objectForKey:@"AllCustID"]];
temp =[self.mutableDictionary objectForKey:@"AllAddressLine"];
allCustAddress.allAddressLine = [self noSpaceString:temp];
temp = [self.mutableDictionary objectForKey:@"AllAddressCity"];
allCustAddress.allAddressCity = [self noSpaceString:temp];
temp = [self.mutableDictionary objectForKey:@"AllAddressState"];
allCustAddress.allAddressState = [self noSpaceString:temp];
temp = [self.mutableDictionary objectForKey:@"AllAddressZip"];
allCustAddress.allAddressZip = [self noSpaceString:temp];
[self.allCustomerAddressesArray addObject:allCustAddress];
[self.mutableDictionary removeAllObjects];
}
else
{
if([elementName isEqualToString:@"AllAddID"]||[elementName isEqualToString:@"AllCustID"] ||[elementName isEqualToString:@"AllAddressLine"]||[elementName isEqualToString:@"AllAddressCity"]||[elementName isEqualToString:@"AllAddressState"]||[elementName isEqualToString:@"AllAddressZip"])
{
[self.mutableDictionary setObject:currentElementValue forKey:elementName];
currentElementValue = nil;
}
}
어디에서 충돌이 발생합니까? 충돌 로그는 무엇입니까? 코드를 게시하십시오 .. –
@ P.J. 코드 및 충돌 로그가 추가되었습니다. 그걸 확인해주세요. – RookieAppler