将数据从AppDelegate传递到iOS中的View

时间:2012-08-31 12:57:06

标签: ios

我正在尝试在启动时获取JSON,并希望使用JSON作为资源。

我在didFinishLaunchingWithOptions发出请求,请求如下:

NSString *urlAsString = @"myurl";
NSURL *url = [NSURL URLWithString:urlAsString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL: url];

NSURLResponse *response = nil;
NSError *error = nil;

NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
if ([data length] > 0 && error == nil) {
    NSString* responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"Data is okay. Size: %lu and result: %@", (unsigned long)[data length], responseString);
}

它运行良好,但我希望将data从MyAppDelegate传递到myViewController。因此,我将使用UILabel的数据。

我到底该怎么办?在AppDelegate中提出请求是错误的吗?

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:4)

首先:在app-delegate中提出请求不是很好的解决方案。您应该在后台运行一些启动任务,这样您就可以向用户显示一些微调器。 第二:你可以在appDelegate中存储NSString变量并为它创建getter(属性)。因此,您可以使用

访问您的App Delegate实体
[[UIApplication sharedApplication] delegate];

第三:您可以通过UIViewController自定义构造函数或使用属性来设置它。