Чтение делегата из контроллера представления в приложении панели вкладок

Я нашел несколько сообщений в Интернете, в которых говорилось, что я могу получить доступ к объекту делегата моего приложения с любого контроллера представления с помощью следующего вызова:

[[UIApplication sharedApplicaton] delegate];

(Например: данные между представлениями UIApplication, iOS - Вызов метода делегата приложения из ViewController)

Однако всякий раз, когда я включаю эту строку в функцию в одном из моих контроллеров представления, приложение вылетает.

Это первое приложение, которое я пишу, и я не вижу разницы между моим кодом и тем, как в других сообщениях говорится, что я должен использовать этот вызов sharedApplication. Для полноты картины ниже приводится выдержка из моего делегата приложения и контроллера представления.

FirstViewController.h:

@class wStreamAppDelegate;
#define URL_ADDRESS @"http://google.com"

@interface FirstViewController : UIViewController <UIWebViewDelegate>{
    IBOutlet UIWebView  * webView;
wStreamAppDelegate* appDelegate;
}

@property(nonatomic,retain) wStreamAppDelegate* appDelegate;
@property(nonatomic,retain) IBOutlet UIWebView* webView;

FirstViewController.m:

#import "FirstViewController.h"
#import "wStreamAppDelegate.h"

@implementation FirstViewController
@synthesize webView,appDelegate;
@class wStreamAppDelegate;

- (void)viewDidLoad {
    [super viewDidLoad];
NSString* urlAddress = URL_ADDRESS;
NSURL* url = [NSURL URLWithString:urlAddress];
NSURLRequest * requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];

    self.appDelegate = (wStreamAppDelegate*)[[UIApplication sharedApplicaton] delegate];

    //This doesn't work either
    //  wStreamAppDelegate *appDelegate= (wStreamAppDelegate*)[[UIApplication sharedApplicaton] delegate];

wStreamAppDelegate.h:

@interface wStreamAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
   UIWindow *window;
   UITabBarController *tabBarController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;

@end

Если у кого-то есть мысли о том, что может пойти не так, общие советы по устранению подобных проблем или советы, я буду очень признателен. Спасибо.


person Behram Mistree    schedule 12.11.2011    source источник
comment
Для начала выберите «Выполнить» ›› Консоль, чтобы открыть консоль и посмотреть, какая именно ошибка вызывает вашу проблему.   -  person aleph_null    schedule 12.11.2011
comment
Спасибо за такой быстрый ответ: [Сессия началась 11-11-11 22:38:37 -0800.] 2011-11-11 22: 38: 39.032 wStream [647: 207] + [UIApplication sharedApplicaton]: неопознанный селектор отправлен class 0x1ea2898 2011-11-11 22: 38: 39.036 wStream [647: 207] *** Завершение работы приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: «+ [UIApplication sharedApplicaton]: нераспознанный селектор отправлен в класс 0x1ea2898» *** Стек вызовов при первом вызове:   -  person Behram Mistree    schedule 12.11.2011
comment
Попробуйте это ... appDelegate = [[UIApplication sharedApplicaton] делегат];   -  person Sahil Khanna    schedule 12.11.2011


Ответы (1)


Опечатки рано или поздно достанутся всем ... в этом случае вы написали «sharedApplicaton» вместо «sharedApplication».

person aleph_null    schedule 12.11.2011
comment
Это было именно то. Спасибо за ответ. Я принимаю ваш ответ сейчас. - person Behram Mistree; 12.11.2011