Nunca he "resuelto" esto, pero sí rastreé el código ofensivo. Sospecho que algo en este segmento del código de Quartz estaba causando un desbordamiento del búfer en algún lugar dentro del núcleo, y solo causó un problema en 3G. Algunos de la configuración para este segmento no está incluido pero esto es sin duda donde está ocurriendo:
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);
Tengo NSZombieEnabled pero no funciona en este caso .. Además, no estoy usando ninguna versión de SDK.Hay algunas cosas triviales en mi biblioteca HTTP, pero esto no está relacionado con esta área del código. – whitehawk
¿Qué iOS estás ejecutando en cada uno de esos 3 dispositivos? ¿Tiene una compilación condicional usando DEBUG/RELEASE define? Mencionas que un objeto está desasignado, ¿puedes publicar algo de ese código? –