Non ho mai "risolto" questo, ma ho rintracciato il codice incriminato. Sospetto che qualcosa in questo segmento del codice Quartz stia causando un sovraccarico del buffer da qualche parte nel profondo del core - e ha causato solo un problema sul 3G. Alcuni dei setup per questo segmento non è incluso, ma questo è sicuramente dove sta accadendo:
gradient = CGGradientCreateWithColors(space, (CFArrayRef)colors, locations);
CGContextAddPath(context, path);
CGContextSaveGState(context);
CGContextEOClip(context);
transform = CGAffineTransformMakeRotation(1.571f);
tempPath = CGPathCreateMutable();
CGPathAddPath(tempPath, &transform, path);
pathBounds = CGPathGetPathBoundingBox(tempPath);
point = pathBounds.origin;
point2 = CGPointMake(CGRectGetMaxX(pathBounds), CGRectGetMinY(pathBounds));
transform = CGAffineTransformInvert(transform);
point = CGPointApplyAffineTransform(point, transform);
point2 = CGPointApplyAffineTransform(point2, transform);
CGPathRelease(tempPath);
CGContextDrawLinearGradient(context, gradient, point, point2, (kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation));
CGContextRestoreGState(context);
CGGradientRelease(gradient);
Ho NSZombieEnabled ma non funziona in questo caso. Inoltre, non sto usando alcun correttore di versione dell'SDK.C'è qualcosa di banale nella mia libreria HTTP ma questo non è legato a quest'area del codice. – whitehawk
Quali iOS stai utilizzando su ciascuno di questi 3 dispositivi? Avete una compilazione condizionale usando DEBUG/RELEASE? Hai menzionato un oggetto che è stato deallocato, puoi pubblicare un po 'di quel codice? –