Domanda

I già su Google per "CFString isNaturallyRTL" con 0 risultati.

queste sono le mie classi:

//in .H
@interface myViewController : UIViewController {
UITextField *from;
UITextField *to;
NSString *fromText;
NSString *toText;
}

@property (nonatomic, retain) NSString* fromText;
@property (nonatomic, retain) NSString* toText;
@property (nonatomic, retain) UITextField *from;
@property (nonatomic, retain) UITextField *to;

//in .m
@synthesize from, to;
@synthesize fromText, toText;

viewDidLoad(...) {
  fromText = @"Roma";
  toText   = @"Lecce";
}

- (void) drawRoute {
  if ( ([[from text] length] > 2) && ([[to text] length] > 2) ) 
 {
  fromText = from.text;
  toText = to.text;
    [...]
  }
}

Ora, ho una visione che si aprono sul pulsante a sfioramento tha contiene due caselle di testo e un pulsante. Ti piace questa.

- (void) drawRouteTextboxes {
 from = [[UITextField alloc] initWithFrame: [...] ];
 from.text = fromText;
 from.delegate = self;
 [ctr.view addSubview:from];
 [from release];

    to = [[UITextField alloc] initWithFrame: [...] ];

    [...]

    [searchButton addTarget:self action:@selector(drawRoute) forControlEvents: UIControlEventTouchUpInside];
}

E 'tutto corretto, compilare ed eseguire.

La prima volta che clicco drawRouteTextboxes, si apre mio punto di vista con testo di default impostato ( "Roma" e "lecce"). La seconda volta, ho aperto la vista, modificare campo di testo e chiamare drawRoute. Va bene. La terza volta che io chiamo drawRouteTextboxes mi restituisce questo errore runtime:

*** -[CFString _isNaturallyRTL]: message sent to deallocated instance 0x3a8d140

Non so dove è il problema ... Qualcuno sa una soluzione? E 'la prima volta che vedo questo errore!

Grazie, Alberto.

È stato utile?

Soluzione

  

E 'tutto corretto, compilare ed eseguire.

Se era tutto corretto, sarebbe eseguito senza errori. ;)

Questo sembra sospetto:

fromText = from.text;   ToText = to.text;

Se from.text e to.text stanno tornando gli oggetti o gli oggetti sia autoreleased che sono poi rilasciato, quindi quanto sopra non mantiene le corde e potrebbe facilmente portare ad un problema di eccesso di rilascio come si sta vedendo.

Usa self.fromText = from.text; invece.

Si noti che le proprietà NSString* dovrebbe quasi sempre essere copy e non retain.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top