UIAPPLICATION SHAREDAPPICICATION 오류 : 프로그램이 잘못된 파일에 액세스하는 것 같습니다.
-
21-09-2019 - |
문제
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;
}
제휴하지 않습니다 StackOverflow