Der folgende Code ausgeführt wird, wenn meine SachenMKPolyline polylineWithCoordinates stürzt auf Ad-hoc aber nicht, wenn über Xcode installiert
CLLocationCoordinate2D outline[track.lastGeo -track.firstGeo];
CLLocationCoordinate2D upper = ((CLLocation*)track.locations[track.firstGeo]).coordinate;
CLLocationCoordinate2D lower = ((CLLocation*)track.locations[track.firstGeo]).coordinate;
int count = 0;
for (int i = track.firstGeo; i <= track.lastGeo; i++) {
CLLocation *firstLoc = [track.locations objectAtIndex:i];
outline[count++] = firstLoc.coordinate;
if([firstLoc coordinate].latitude > upper.latitude) upper.latitude = [firstLoc coordinate].latitude;
if([firstLoc coordinate].latitude < lower.latitude) lower.latitude = [firstLoc coordinate].latitude;
if([firstLoc coordinate].longitude > upper.longitude) upper.longitude = [firstLoc coordinate].longitude;
if([firstLoc coordinate].longitude < lower.longitude) lower.longitude = [firstLoc coordinate].longitude;
}
_outline = [MKPolyline polylineWithCoordinates:outline count:count -1];
initialisiert werden und es läuft gut, wenn über Xcode im Einsatz. Aber wenn ich die App über iTunes Ad-hoc-installieren, stürzt es mit
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x40480b3508f648cf
Triggered by Thread: 0
Filtered syslog:
None found
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 MapKit 0x000000018de19484 -[MKMultiPoint _wrapAroundTheDateline:count:] + 108
1 MapKit 0x000000018de195d8 -[MKMultiPoint _setCoordinates:count:] + 184
2 MapKit 0x000000018de195d8 -[MKMultiPoint _setCoordinates:count:] + 184
3 MapKit 0x000000018de13a74 +[MKPolyline polylineWithCoordinates:count:] + 84
Kann jemand einen Grund denken, warum das so ist?
- die Standorte existieren als ein mit Xcode installieren läuft ganz gut
- ich habe nicht alle Debug/Release-Optionen in Xcode ändern, ist alles Standard
- es auf verschiedenen Geräten abstürzt, aber nur, wenn Ad-hoc-
Da MapKit nicht Open Source ist habe ich keine Ahnung, was
[MKMultiPoint _wrapAroundTheDateline:count:]
tut oder warum es crashe s gibt
EDIT 1
es auf MKMultiPoint kocht versucht, viel zu viel Raum zu malloc.
malloc: *** mach_vm_map(size=2405744640) failed (error code=3)
Ist es möglich, dass die Optimierungsstufe von XCode dies verursacht? Wenn es mit debug ausgeführt wird, passiert es nicht, also vielleicht um den Release-Code zu beschleunigen ist es verpatzt Speicherplatz zu nutzen, um Geschwindigkeit zu gewinnen und somit das Problem hier zu verursachen?!
Alles, was ich mache, ist die Erstellung einer Polylinie mit etwa 1000 Koordinaten (reale Lebensdauer von vielleicht 5 km)!
up Versuchen als Release-Build ausgeführt wird. Das ist der große Unterschied zwischen dem Ausführen von Xcode und dem Ausführen von Ad-hoc. Vielleicht können Sie den gleichen Unterschied erzielen, indem Sie als Release-Build von Xcode ausgeführt werden. – matt
Hat das, das gleiche Verhalten, der gleiche Crash. Erstellung der MKPolyline, alle Werte, die an sie übergeben werden, sind echt. – NikkyD
Haben Sie wirklich keinen Speicher mehr? Hilft es, einen Autorelease-Pool um den Schleifenkörper zu legen? Haben Sie versucht, den neuen Adressdesinfizierer zu verwenden? – matt