Tenía un mensaje EXC_BAD_ACCESS en mi consola. Leí sobre las variables de entorno NSZombieEnabled y MallocStackLoggingNoCompact en this site. Creé mis variables de entorno: NSZombieEnabled = SÍ y MallocStackLoggingNoCompact = 1. En la consola, viDepuración EXC_BAD_ACCESS desde un NSString
2010-03-01 19: 13: 46.924 CruzNomad [7952: 207] *** - [CFString stringByAddingPercentEscapesUsingEncoding:]: mensaje enviado a la instancia desasignado 0x58448e0
Luego, al (BGF) del sistema, lo hice información malloc-historia 0x58448e0, que me dio:
Alloc: Block address: 0x058448e0 length: 64
Stack - pthread: 0xa0b33500 number of frames: 25
0: 0x98e089bc in malloc_zone_malloc
1: 0x21516aa in _CFRuntimeCreateInstance
2: 0x2152bf8 in __CFStringCreateImmutableFunnel3
3: 0x21567d9 in CFStringCreateCopy
4: 0x21742fc in _CFStringCreateWithFormatAndArgumentsAux
5: 0xdb546 in -[NSPlaceholderString initWithFormat:locale:arguments:]
6: 0xdb4d8 in +[NSString stringWithFormat:]
7: 0x23aa3 in -[BuisnessCardViewController viewDidLoad] at /Users/.../Classes/BuisnessCardViewController.m:85
8: 0x3d6796 in -[UIViewController view]
9: 0x347b4 in -[gm_menuViewController btn5_Pressed:] at /Users/.../Classes/menuViewController.m:535
10: 0x357459 in -[UIApplication sendAction:to:from:forEvent:]
11: 0x3baba2 in -[UIControl sendAction:to:forEvent:]
12: 0x3bcdc3 in -[UIControl(Internal) _sendActionsForEvents:withEvent:]
13: 0x3bbb0f in -[UIControl touchesEnded:withEvent:]
14: 0x370e33 in -[UIWindow _sendTouchesForEvent:]
15: 0x35a81c in -[UIApplication sendEvent:]
16: 0x3610b5 in _UIApplicationHandleEvent
17: 0x2984ed1 in PurpleEventCallback
18: 0x2197b80 in CFRunLoopRunSpecific
19: 0x2196c48 in CFRunLoopRunInMode
20: 0x298378d in GSEventRunModal
21: 0x2983852 in GSEventRun
22: 0x362003 in UIApplicationMain
23: 0x2c8c in main at /Users/.../source/main.m:14
24: 0x2bfa in start
La línea 7 dice que el problema estaba en la línea 85 de BuisnessCardViewController.m. Esa línea está aquí:
fullAddress = [NSString stringWithFormat:@"%@ %@", fullAddress, myString];
estoy añadiendo los contenidos de fullAddress y miCadena y almacenar de nuevo en fullAddress.
Si interpreto esto correctamente, parece que después de esta línea, fullAddress está desasignado. Cuando dejo caer un punto de interrupción y me cierro sobre la variable, su valor dice "fuera del alcance".
fullAddress funciona más adelante en este método. Lo uso para enviar para enviar a Google para geocodificación inversa en la línea 164 del mismo método.
NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", [fullAddress stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
Incluso aquí, dice "fuera de alcance". Estoy perplejo ... ¿algún consejo?
Gracias!
Thomas
¿Puedes publicar un poco más de contexto? Si dice que la variable salió del alcance, ¿podemos ver el alcance completo? –
¿Está utilizando 'fullAddress' or' myString' en otro lugar? – FelixLam
Además, por si acaso fue un accidente, ha escrito incorrectamente a Business como Buisness. – dreamlax