0

在我的应用程序中,我正在向 Web 服务器发送请求并获得一些结果,然后我正在解析此结果并将此结果字符串存储到其他类对象字符串中。

例如:

@interface GraphView : UIViewController<UITabBarControllerDelegate> {  

NSMutableString *graphTempString;   

}
@property(nonatomic,retain) NSMutableString *graphTempString;   
@end  

TSU类.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];  
        }  

当我调试时,我可以看到 GraphView 的值,graphViewController.graphTempString但在转到 GraphView 之后,我看不到这些值。

我希望有人知道如何解决这个问题。

4

4 回答 4

0

传递价值的简单方法。

[[NSUserDefaults standardUserDefaults]setObject:resultString forKey:@"resultString"];
[[NSUserDefaults standardUserDefaults] synchronize];

在另一个类中像这样使用这个值

NSString *resultString=[[NSUserDefaults standardUserDefaults]valueForKey:@"resultString"];

或者你可以这样做。

graphViewController.graphTempString=self.tempString; 
于 2011-04-06T11:22:57.417 回答
0

你能试一下吗

2nClassObj.tempString =[NSString stringWithFormat:@"%@",resultString];  

祝你好运

于 2011-04-06T11:28:39.247 回答
0

@Pooja我建议你尝试通过在AppDelegate类中创建一个变量来执行resultString此操作,然后在你的或任何你想要的类中从这个变量中获取值2ndClass.....你永远不会得到空值。

让我们假设您的AppDelegate类的对象是类型appDelegate的变量是 let 。然后在你的课堂上,你正在做这样的事情。NSStringstringValueresultString

appDelegate.stringValue = resultString;

在你的2ndClass类中,像这样从这个变量中获取值。

tempString =  appDelegate.stringValue;

你会得到数据.....希望你明白我的意思。

祝你好运!

于 2011-04-06T12:02:10.737 回答
0

如果添加一些 NSLog 语句会发生什么?

    if (grpahCall == YES) {
        graphViewController=[[GraphView alloc]init];

        NSLog(@"-%@-", tempString);
        graphViewController.graphTempString=tempString;  
        NSLog(@"-%@-", graphViewcontroller.graphTempString);

        [self.navigationController pushViewController:graphViewController animated:YES];  
    }

我希望看到同样的东西输出两次?你能告诉我你在控制台中得到了什么吗?

于 2011-04-06T13:30:35.370 回答