UIApplication sharedAppicationエラー:プログラムが間違ったファイルにアクセスしているようです
-
21-09-2019 - |
質問
私の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;
}
所属していません StackOverflow