2014-01-15 62 views
-3

我很难搞清楚如何将NSString传递给NSObject类。将NSString传递给NSObject

我有一个.h和.m文件这是一个NSObject,我需要从一个UIViewController传递一个字符串。

这是我试图推视图时:

 NSString *urlString = @"TextHere"; 
     WXClient *svc = [[WXClient alloc]init]; 
     svc.urlOne = urlString 

然后,我检索这样说:

@interface WXClient : NSObject { 

    NSString *urlOne; 
    } 
    @property (strong, nonatomic) NSString *urlOne; 

,当然,再上.M:

@synthesize urlOne; 

然后使用的NSString:

NSString *urlString = [NSString stringWithFormat:urlOne]; 
    NSURL *url = [NSURL URLWithString:urlString]; 
    //blah blah blah blah... :D 
}]; 

但由于某种原因它返回null。我可以用这个方法从的viewController到的viewController但NSObject的不工作:(

任何想法?

谢谢!

+5

您从不分配和初始化'WXClient'实例。 – rmaddy

+0

你需要一个更新的教程。您不需要为'urlOne'属性显式的ivar或'@ synthesize'行。 – rmaddy

+1

我建议回顾Objective-C的一些基础知识。 – dandan78

回答

0

试试这个

 WXClient *svc = [[WXClient alloc]init]; 
     NSString *urlString = @"TextHere"; 
     svc.urlOne = urlString; 

对不起没看过问题正确

+0

WXClient不是一个viewController。是一个NSObject。 –

+0

对不起.. @MichaelOrtiz更新了答案。检查一次 –

+2

视图控制器也是一个nsobject。 – vikingosegundo

0

如果您正在推送/呈现视图控制器通过segue并且您想要发送一些数据到目标视图con trller。就像你想设置一些属性一样,你需要实现这个方法。 prepareForSegue:sender:。 在这里你可以得到目的地viewController并设置你想要的任何属性。

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    { 
     if ([[segue identifier] isEqualToString:@"weatherWXID"]) { 
      WeatherViewController *vc = [segue destinationViewController]; 
      NSString *urlString = @"TextHere"; 
      WXClient *svc = [WXCLient new]; 
      svc.urlOne = urlString 
      vc.wxclient = svc; 
     } 
    } 
相关问题