2017-10-23 4 views
-2

hometabviewcontrollerから特定のタブバーをタップするとクラッシュエラーが発生します。これはiOS 11でのみ発生します。この問題を解決するのを手伝ってください。iOS 11のみクラッシュの問題 - タブバーをタップするとアプリケーションがクラッシュする

2017-10-23 16:48:57.000890+0400 FixtrProvider[2520:910402] desc: -[UIView refreshControl]: unrecognized selector sent to instance 0x10af090d0 
2017-10-23 16:48:57.001223+0400 FixtrProvider[2520:910402] name: NSInvalidArgumentException 
2017-10-23 16:48:57.001308+0400 FixtrProvider[2520:910402] user info: (null) 
2017-10-23 16:48:57.001441+0400 FixtrProvider[2520:910402] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView refreshControl]: unrecognized selector sent to instance 0x10af090d0' 

以下は、要求に応じて私のHomeTabViewコントローラのページ全体です。

@interface HomeTabBarController() 
{ 
    ChatSocketIOClient *socket; 

} 
@property (strong, nonatomic) UIButton *onTheJobOffTheJobButton; 
@property (strong, nonatomic) NSString *status; 
@property LocationTracker * locationTracker; 
@property (nonatomic) NSTimer* locationUpdateTimer; 
@end 

@implementation HomeTabBarController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Crash bug fixing 
    self.automaticallyAdjustsScrollViewInsets = NO; 
    if (!socket) { 
     socket =[ChatSocketIOClient sharedInstance]; 
    } 
     [self.navigationController setNavigationBarHidden:YES animated:YES]; 
    [self tabbarImages]; 
} 

-(void)tabbarImages 
{ 
    NSString *homeunselect; 
    NSString *homeselect; 
    NSString *historyunselect; 
    NSString *historyselect; 
    NSString *scheduleunselect; 
    NSString *scheduleselect; 
    NSString *earnunselect; 
    NSString *earnselect; 
    NSString *proilfeunselect; 
    NSString *profileselect; 


    UITabBar *tabBar = self.tabBar; 

    UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0]; 
    UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1]; 
    UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2]; 
    UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3]; 
    UITabBarItem *tabBarItem5 = [tabBar.items objectAtIndex:4]; 

    if ([UIScreen mainScreen].bounds.size.height <= 568) { 
     homeunselect = @"provider_popup_home_btn"; 
     homeselect = @"provider_popup_home_btn_selector"; 

     historyunselect = @"provider_popup_history_btn"; 
     historyselect = @"provider_popup_history_btn_selector"; 

     scheduleunselect = @"provider_popup_schedule_btn"; 
     scheduleselect = @"provider_popup_selector_btn_selector"; 

     earnunselect = @"provider_popup_earnings_btn"; 
     earnselect = @"provider_popup_earnings_btn_selector"; 

     proilfeunselect = @"provider_popup_profile_btn"; 
     profileselect = @"provider_popup_profile_btn_selector"; 
    }else if ([UIScreen mainScreen].bounds.size.height == 667){ 
     homeunselect = @"6provider_popup_home_btn"; 
     homeselect = @"6provider_popup_home_btn_selector"; 

     historyunselect = @"6provider_popup_history_btn"; 
     historyselect = @"6provider_popup_history_btn_selector"; 

     scheduleunselect = @"6provider_popup_schedule_btn"; 
     scheduleselect = @"6provider_popup_selector_btn_selector"; 

     earnunselect = @"6provider_popup_earnings_btn"; 
     earnselect = @"6provider_popup_earnings_btn_selector"; 

     proilfeunselect = @"6provider_popup_profile_btn"; 
     profileselect = @"6provider_popup_profile_btn_selector"; 
    }else if ([UIScreen mainScreen].bounds.size.height >= 736){ 
     homeunselect = @"6pprovider_popup_home_btn"; 
     homeselect = @"6pprovider_popup_home_btn_selector"; 

     historyunselect = @"6pprovider_popup_history_btn"; 
     historyselect = @"6pprovider_popup_history_btn_selector"; 

     scheduleunselect = @"6pprovider_popup_schedule_btn"; 
     scheduleselect = @"6pprovider_popup_selector_btn_selector"; 

     earnunselect = @"6pprovider_popup_earnings_btn"; 
     earnselect = @"6pprovider_popup_earnings_btn_selector"; 

     proilfeunselect = @"6pprovider_popup_profile_btn"; 
     profileselect = @"6pprovider_popup_profile_btn_selector"; 
    } 


    tabBarItem1.selectedImage = [[UIImage imageNamed:homeselect] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 
    tabBarItem1.image = [[UIImage imageNamed:homeunselect] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 

    tabBarItem2.selectedImage = [[UIImage imageNamed:historyselect]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 
    tabBarItem2.image = [[UIImage imageNamed:historyunselect]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 

    tabBarItem3.selectedImage = [[UIImage imageNamed:scheduleselect]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 
    tabBarItem3.image = [[UIImage imageNamed:scheduleunselect]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 

    tabBarItem4.selectedImage = [[UIImage imageNamed:earnselect]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 
    tabBarItem4.image = [[UIImage imageNamed:earnunselect]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 

    tabBarItem5.selectedImage = [[UIImage imageNamed:profileselect]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 
    tabBarItem5.image = [[UIImage imageNamed:proilfeunselect]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 

} 


-(void)viewWillAppear:(BOOL)animated{ 
    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"OnChatController"]; 
    [[NSUserDefaults standardUserDefaults]synchronize]; 
    self.tabBarController.tabBar.hidden = NO; 
    [UIApplication sharedApplication].idleTimerDisabled = YES; 
} 
-(void)viewDidDisappear:(BOOL)animated{ 
} 

iOS 11でtabbar-4をタップするとこのアプリケーションがクラッシュします。私は自分のコードで何が間違っているのか分かりません。私は、HometabviewcontrollerまたはaccountscontrollerのいずれかでrefreshControllerに関連するコードを取得しませんでした。コードベース全体を検索すると次のようになります。

以下は、特定のタブビューコントローラのビューロードコードです。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 

    [super viewDidLoad]; 
    _paymentLogs.selected = YES; 

    self.automaticallyAdjustsScrollViewInsets = NO; 

    self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: UIColorFromRGB(0XfEAA26)}; 
} 

-(void)getFinancialData{ 
    UIWindow *window = [[UIApplication sharedApplication]keyWindow]; 
    [[ProgressIndicator sharedInstance] showPIOnWindow:window withMessge:NSLocalizedString(@"Loading...",@"Loading...")]; 
    _pastCycle = [[NSMutableArray alloc]init]; 
    NSDictionary *dict [email protected]{ 
          @"ent_sess_token": [[NSUserDefaults standardUserDefaults] objectForKey:KDAcheckUserSessionToken], 
          @"ent_dev_id": [[NSUserDefaults standardUserDefaults] objectForKey:kPMDDeviceIdKey], 
          @"ent_date_time":[Helper getCurrentDateTime], 
          @"ent_pro_id": [[NSUserDefaults standardUserDefaults] objectForKey:@"ProviderId"] 
          }; 
    NetworkHandler *handler =[NetworkHandler sharedInstance]; 
    [handler composeRequestWithMethod:@"GetFinancialData" 
           paramas:dict 
         onComplition:^(BOOL succeeded, NSDictionary *response) { 
          if (succeeded) { 
           _pastCycle = [response[@"pastCycle"] mutableCopy]; 
           _currentCycle = response[@"currentCycle"]; 
           NSLog(@"financial data %@",response); 
           [self.currentTableView reloadData]; 
           [self.pastTableView reloadData]; 
           [[ProgressIndicator sharedInstance] hideProgressIndicator]; 
          } 
         }]; 
} 

-(void)viewWillAppear:(BOOL)animated{ 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userSessionTokenExpire) name:@"HandleAcceptAndRejectFromAdmin" object:nil]; 

} 
-(void)viewWillDisappear:(BOOL)animated{ 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"HandleAcceptAndRejectFromAdmin" object:nil]; 

} 

-(void)userSessionTokenExpire{ 

    [[NSUserDefaults standardUserDefaults] removeObjectForKey:KDAcheckUserSessionToken]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
    ProgressIndicator *pi = [ProgressIndicator sharedInstance]; 
    [pi hideProgressIndicator]; 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName: 
           @"Main" bundle:[NSBundle mainBundle]]; 
    iServeSplashController *splah = [storyboard instantiateViewControllerWithIdentifier:@"splash"]; 
    self.navigationController.viewControllers = [NSArray arrayWithObjects:splah, nil]; 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
} 



-(void)viewDidAppear:(BOOL)animated { 
    _pastCycle = [[NSMutableArray alloc]init]; 
    [self getFinancialData]; 
    [super viewDidAppear:animated]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(accountDeactivated) name:@"accountDeactivated" object:nil]; 
} 

-(void)viewDidDisappear:(BOOL)animated { 

    [super viewDidDisappear:animated]; 

    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
} 
+1

あなたはこの問題を詳述するか、いくつかのコードサンプルを提供できますか? –

+0

'hometabviewcontroller'の投稿コード – RaffAl

+0

@Bearwithme code posted ... – Fido

答えて

0

unrecognized selector sent to instanceがどこに由来しているかを追跡できます。あなたのコードの何かがそれを呼び出しています。

hometabviewcontrollerまたはプロジェクト全体でrefreshControlのテキスト検索を行い、どこで何が呼び出されているかを確認し、必要なものがあることを確認します。

これで解決できない場合は、より多くのコード(好ましくはhometabviewcontroller)が必要です。

+0

私は必要なコードを追加しました。私を助けてください。この問題を見つけるのは非常に難しいです。これはiOS 11でのみ発生しています。 – Fido

関連する問題