respaldo - restaurar iphone
problema en la secuencia de copia para otra clase (4)
En mi aplicación, estoy enviando una solicitud al servidor web y obteniendo algunos resultados, luego estoy analizando este resultado y almacenando esta cadena de resultados en otra cadena de objetos de clase.
Por ejemplo:
@interface GraphView : UIViewController<UITabBarControllerDelegate> {
NSMutableString *graphTempString;
}
@property(nonatomic,retain) NSMutableString *graphTempString;
@end
TSUClass .m
implementing NSURLConnection(),
connectionDidFinishLoading(),
-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *) elementName
namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *) qName
attributes:(NSDictionary *) attributeDict()
-(void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
{
if( [elementName isEqualToString:@"statusTEResult"])
{
tempString=soapResults;
if (grpahCall == YES) {
graphViewController=[[GraphView alloc]init];
graphViewController.graphTempString=tempString;
[self.navigationController pushViewController:graphViewController animated:YES];
}
Cuando estoy depurando puedo ver el valor de graphViewController.graphTempString
pero después de ir a GraphView, no puedo ver los valores.
Espero que alguien sepa cómo resolver este problema.
¿Qué sucede si agrega algunas declaraciones NSLog?
if (grpahCall == YES) {
graphViewController=[[GraphView alloc]init];
NSLog(@"-%@-", tempString);
graphViewController.graphTempString=tempString;
NSLog(@"-%@-", graphViewcontroller.graphTempString);
[self.navigationController pushViewController:graphViewController animated:YES];
}
Esperaría ver la misma salida dos veces? ¿Puedes decirme qué obtienes en la consola?
@Pooja te sugiero que intentes hacer esto haciendo que una variable en la clase AppDelegate
dé tu resultString
a esta variable y luego obtengas el valor de esta variable en tu 2ndClass
o en cualquier clase que desees ..... nunca obtendrás valor nulo .
Supongamos que el objeto de su clase AppDelegate
es appDelegate
y la variable cuyo tipo de NSString
es lets stringValue
. Luego, en tu clase, donde obtendrás el resultString
, resultString
haz esto.
appDelegate.stringValue = resultString;
Y en tu clase 2ndClass
toma el valor de esta variable como esta.
tempString = appDelegate.stringValue;
Obtendrás los datos ..... Espero que tengas mi punto.
¡Buena suerte!
Forma fácil de pasar el valor
[[NSUserDefaults standardUserDefaults]setObject:resultString forKey:@"resultString"];
[[NSUserDefaults standardUserDefaults] synchronize];
y en otra clase use este valor como este
NSString *resultString=[[NSUserDefaults standardUserDefaults]valueForKey:@"resultString"];
o puedes hacerlo así
graphViewController.graphTempString=self.tempString;
puedes intentar
2nClassObj.tempString =[NSString stringWithFormat:@"%@",resultString];
buena suerte