UIApplication sharedAppicationエラー:プログラムが間違ったファイルにアクセスしているようです

StackOverflow https://stackoverflow.com/questions/2075352

質問

私のMainViewControllerの実装では、私は2つの異なるクラスから変数にアクセスする必要があります。クラスの一つは、AppDelegateであり、他はFlipsideViewControllerです。 私はこれらのアクセス方法は、このコードを介していた。

-(void)someMethod
{
MyApplicationAppDelegate *appDelegate = (MyApplicationAppDelegate *)[[UIApplication sharedApplication] delegate];
FlipsideViewController *viewController = (FlipsideViewController *)[[UIApplication sharedApplication] delegate];

そして、私は自分のアプリケーションのデリゲートからアクセスし、アレイ、およびflipsideViewControllerからUISwitchのインスタンスから値を返すいくつかのインスタンス変数を持っています:

NSMutableArray* array = [[NSMutableArray alloc] initWithArray:(NSMutableArray *)appdelegate.originalArray];
for (id element in array)
{
    if ([[element attribute] isEqualToString:@"someAttribute"] && [viewController.switch1 isOn] == YES)
    {
    //preform function
    }
}

I、エラーメッセージ取得保つ「 - [MyApplicationAppDelegateスイッチ1]を:未認識セレクタインスタンスに送信によるキャッチされない例外にアプリを終了する。」

役に立ちましたか?

解決

[のUIApplication sharedApplication]デリゲート]。常にMyApplicationAppDelegateクラスの(シングルトン)のインスタンスを返します、あなたは単にFlipsideViewController*にキャストすることはできません。 flipsidecontroller値にアクセスするには、プロパティを定義し、それを呼び出すことができます(それはあなたのappdelegateに格納されたと仮定した場合):

-(void)somemethod{
     MyApplicationAppDelegate *appDelegate = (MyApplicationAppDelegate *)[[UIApplication sharedApplication] delegate];
     FlipsideViewController *viewController = appDelegate.flipsideController;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top