UIAPPLICATION SHAREDAPPICICATION 오류 : 프로그램이 잘못된 파일에 액세스하는 것 같습니다.

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

문제

MainViewController 구현에서는 두 개의 다른 클래스에서 변수에 액세스해야합니다. 클래스 중 하나는 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
    }
}

"-[myApplicationAppDelegate switch1] : 인스턴스로 보낸 인식되지 않은 선택기. upphed 예외로 인해 앱 종료"오류 메시지를 계속받습니다.

도움이 되었습니까?

해결책

[UIAPPLICATION SHAREDAPPLICATION] DELEGATE]; 항상 (싱글 톤) 인스턴스를 반환합니다 MyApplicationAppDelegate 수업과 당신은 단순히 그것을 캐스팅 할 수 없습니다 FlipsideViewController*. FlipsIdeController 값에 액세스하려면 (AppDelegate에 저장되었다고 가정) 속성을 정의하고 호출 할 수 있습니다.

-(void)somemethod{
     MyApplicationAppDelegate *appDelegate = (MyApplicationAppDelegate *)[[UIApplication sharedApplication] delegate];
     FlipsideViewController *viewController = appDelegate.flipsideController;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top