2015-03-13 4 views
-1

В моем приложении я передаю некоторые строки с контроллера вида на другой контроллер представления.NSString теряет свою ценность внутри контроллера вида

  • View Controller A = MainViewController
  • View Controller B = NuevoServicioViewController

Передача NString от А до Б

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Make sure your segue name in storyboard is the same as this line 
    if ([[segue identifier] isEqualToString:@"nuevo_servicio_segue"]) 
    { 
     NSLog(@"estoy en segue pasando a nuevo servicio"); 
     // Get reference to the destination view controller 
     NuevoServicioViewController *vc = [segue destinationViewController]; 
     //pasamos la latitud del PO 
     //la convertimos a String 
     NSString *latitud = [NSString stringWithFormat:@"%.20f", self.puntoOrigen.latitude]; 
     vc.parametro_origin_latitude = latitud; 
     //lo comprobamos 
     NSLog(@"LATITUD DEL PO PASADA=%@",latitud); 
     //pasamos la lONGITUD del PO 
     //la convertimos a String 
     NSString *longitud = [NSString stringWithFormat:@"%.20f", self.puntoOrigen.longitude]; 
     vc.parametro_origin_longitude = longitud; 
     //lo comprobamos 
     NSLog(@"LONGITUD DEL PO PASADA=%@",longitud); 

    } 
} 

вид журнала, чтобы проверить, что строка является правильным :

2015-03-12 22:37:31.966 ABCTaxi[811:60b] LATITUD DEL PO PASADA=31.71179790294406686257 

Сейчас в B, необходимо войти, чтобы проверить, что строка принимается: вид

//3. origin_latitude, la recibimos de mainview 

    NSLog(@"LATITUD RECIBIDA DE MAINVIEW=%@",self.parametro_origin_latitude); 

Войдите, чтобы убедиться, что полученная строка совпадает со строкой:

[811:60b] LATITUD RECIBIDA DE MAINVIEW=31.71179790294406686257 

И в конце B, действие действия кнопки перед дальнейшим процессом, еще один журнал, чтобы проверить правильность строки:

- (IBAction)boton_tomar_taxi_action:(id)sender { 
    //COMPROBAMOS QUE ESTAN TODOS LOS PARAMETROS 
    //PARAMETRO 1 CLIENT 
    NSLog(@"client = %@", self.parametro_client); 
    //PARAMETRO 2 ORIGIN 
     NSLog(@"origin = %@", self.parametro_origin); 
    //PARAMETRO 3 ORIGIN_LATITUDE 
    NSLog(@"origin_latitude = %@", self.parametro_origin_latitude); 
    //PARAMETRO 4 ORIGIN_LATITUDE 
    NSLog(@"origin_longitude = %@", self.parametro_origin_longitude); 
    //PARAMETRO 5. DATE 
    NSLog(@"date = %@", self.parametro_date); 

} 

И, наконец, строка нуль.

[811:60b] origin_latitude = (null) 

Я не могу найти причину, по которой строка не совпадает с концом. Пожалуйста, помогите мне определить причину. Спасибо

+0

Как вы объявляете parametro_origin_longitude недвижимость? – bsarrazin

+0

@bensarz :, Я следую за строкой parameter_origin_latitude, объявленной в файле h как свойство (слабый, неатомный) NSString * parametro_origin_latitude; – user4619034

ответ

1

Измените свою собственность на сильную, это должно устранить проблему.

+0

Спасибо, я попробую сейчас ... – user4619034

+0

Он работает, еще раз спасибо ... – user4619034

+0

С удовольствием! – bsarrazin

1

Изменить этот @property (weak, nonatomic)NSString *parametro_origin_latitude; этих @property (strong, nonatomic)NSString *parametro_origin_latitude;

Смежные вопросы