Uno de tantos problemas con Xcode y Objective-C

Uno de tantos problemas con Xcode y Objective-C

Notapor cjdr » 23 May 2008, 17:35

Bueno, veamos si hay algun otro programador en esta comunidad.

El codigo que presento como adjunto, hace lo siguiente: el programa lee desde un fichero de texto una listas de instrumentos que coloca en diferentes NSArrays (14 arrays) dependiendo de valor de la segunda columna del fichero. El interface contiene 2 NSComboBox y un NSButton que algo le programe, pero no importa para el problema. Lo que pretendo es que el NSComboBox de la derecha, se rellene con un array diferente, dependiendo de el valor que tome el NSComboBox de la izquierda, que contiene un valor entre 0 y 127 y que son los mismos valores de la columna 2 del fichero.

En principio parece facil, pero llevo 2 semanas rompiendome los cuernos con el puto message sent to deallocated instance. ¿Si la primera vez funciona bien?., es decir, al iniciar el programa relleno el Combo con el Array0, ¿porque falla cuando selecciono un numero diferente?. El problema esta en la funcion "rellenarCombo". Los arrays los relleno con una clase que creo yo, y el cachondeo es que si en vez de utilizar esa clase simplemente uso un NSString, el programa funciona perfectamente, pero necesito que el contenido sea una clase. No me vale ni un struct, ni nada parecido, excepto una clase.

A ver si alguien que sepa un poco mas que yo de Xcode, ve el problema..... seguro que lo tengo delante, pero no consigo verlo ni a golpes...

Todo lo necesario esta incluido en el fichero adjunto.
Prueba21.zip
Programa de Prueba de NSComboBox
(62.9 KiB) 23 veces

Gracias
cjdr
 
Mensajes: 4
Registrado: 23 May 2008, 09:13

Re: Uno de tantos problemas con Xcode y Objective-C

Notapor cjdr » 24 May 2008, 19:10

ARREGLADO!!!

Habia que hacer un retain del NSString al rellenar el objeto Instrument.

Código: Seleccionar todo
-(Instrument *) initWithValues:(NSInteger)valor0 :(NSInteger)valor1 :(NSInteger)valor2 :(NSString *)valor3{

   // Inicializamos el objeto con los valores por defecto
    if ((self = [super init])) {
      [self setNumInst:valor0];
      [self setVarInst:valor1];
      [self setVoxInst:valor2];
      [self setNameInst:[valor3 retain]];
   }
    return self;
}


Aunque, de momento no se muy bien porque.

Gracias
cjdr
 
Mensajes: 4
Registrado: 23 May 2008, 09:13


Volver a Desarrollo

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron