因此,我正在編寫一個將讀取JSON訂閱源的應用程序。在我的應用程序中:didFinishLaunchingWithOptions,我正在編寫一些代碼來下載JSON字符串並將其存儲到本地NSString變量中。然後我會將該字符串傳遞給ListingsViewController(這是NavigationController的Root VC)。當我在ListingsViewController中打印出JSON數據時,它顯示我(空),這讓我認爲viewDidLoad之前加載 - 這似乎不合邏輯?application:didFinishLaunchingWithOptions在viewDidLoad之前加載
因此,這裏是我的應用程序中:didFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Grab the feeds
NSURL *jsonURL = [NSURL URLWithString:@"http://www.shoofeetv.com/iphonexml/view/all_channels.json"];
NSString *jsonData = [[NSString alloc] initWithContentsOfURL:jsonURL];
// Pass jsonData to the ListingsViewController
ListingsViewController *listingsViewController = [[ListingsViewController alloc] initWithNibName:@"ListingsViewController" bundle:nil];
listingsViewController.jsonData = jsonData;
[listingsViewController release];
// Display the navigation controller
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
我viewDidLoad方法如下:
- (void)viewDidLoad {
self.navigationItem.title = @"Listings";
UIBarButtonItem *checkinButton = [[UIBarButtonItem alloc]
initWithTitle:@"Check In"
style:UIBarButtonItemStylePlain
target:self
action:@selector(switchView)];
self.navigationItem.rightBarButtonItem = checkinButton;
[checkinButton release];
NSLog(@"%@", self.jsonData);
[super viewDidLoad];
}
請注意,通常的解決辦法是確保在App委派的MainWindow.xib必須連接到文件的所有者。我的礦井已經連通。
我會感謝任何幫助!
謝謝大家。
哦也,當我放了兩個NSLogs在每個函數中,viewDidLoad NSLog首先出現..謝謝! – darksky 2011-06-12 13:01:48