2017-02-21 61 views
0

Я использую 3 вида на одном UIViewController. Из-за этого у меня есть много кода в viewDidLoad() Нравится так:, когда я использую 3 вида на viewcontroller, он становится медленным в объекте c

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 

    customActivityIndicator.animationImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"tmp-0.gif"],[UIImage imageNamed:@"tmp-1.gif"],[UIImage imageNamed:@"tmp-2.gif"],[UIImage imageNamed:@"tmp-3.gif"],[UIImage imageNamed:@"tmp-4.gif"],[UIImage imageNamed:@"tmp-5.gif"],[UIImage imageNamed:@"tmp-6.gif"],[UIImage imageNamed:@"tmp-7.gif"],[UIImage imageNamed:@"tmp-8.gif"],[UIImage imageNamed:@"tmp-9.gif"],[UIImage imageNamed:@"tmp-10.gif"],[UIImage imageNamed:@"tmp-11.gif"],[UIImage imageNamed:@"tmp-12.gif"],[UIImage imageNamed:@"tmp-13.gif"],[UIImage imageNamed:@"tmp-14.gif"],[UIImage imageNamed:@"tmp-15.gif"],nil]; 
    customActivityIndicator.animationDuration = 1.0; // in seconds 
    customActivityIndicator.animationRepeatCount = 0; // sets to loop 

    [customActivityIndicator startAnimating]; 

    btn.hidden=YES; 


    UILabel *lab =[[UILabel alloc] init]; 
    lab.text = [NSString awesomeIcon:FaMailReply]; 

    UIImage *listImage2 = [UIImage imageNamed:@"backicon.png.png"]; 
    UIButton *listButton2 = [UIButton buttonWithType:UIButtonTypeCustom]; 
    listButton2.backgroundColor=[UIColor whiteColor]; 
    [[listButton2 layer] setBorderWidth:0.5f]; 
    listButton2.layer.borderColor =[[UIColor blackColor] CGColor]; 
    listButton2.layer.cornerRadius = btn.bounds.size.width/3.4;// this value vary as per your desire 
    listButton2.clipsToBounds = YES; 

    UIFont *font = [UIFont fontWithName:@"FontAwesome" size:15.0]; 
    UIColor *color = [UIColor blueColor]; 

    NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName,color,NSForegroundColorAttributeName, nil]; 
    // [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName,color,NSForegroundColorAttributeName, nil]; 

    NSAttributedString *attributedStr = [[NSAttributedString alloc] initWithString:lab.text attributes:attrsDictionary]; 



    // get the image size and apply it to the button frame 
    CGRect listButton2Frame = listButton2.frame; 
    listButton2Frame.size = listImage2.size; 
    listButton2.frame = listButton2Frame; 

    [listButton2 setAttributedTitle:attributedStr forState:UIControlStateNormal]; 
    [listButton2 addTarget:self 
        action:@selector(LogoutClick:) 
      forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *jobsButton2 = 
    [[UIBarButtonItem alloc] initWithCustomView:listButton2]; 


    //Notificaation Icon Button... 


    UILabel *lablnotification =[[UILabel alloc] init]; 
    // lab.font = [UIFont fontWithName:@"FontAwesome" size:8]; 
    // lab.textColor = [UIColor whiteColor]; 
    lablnotification.text = [NSString awesomeIcon:FaHome]; 

    UIImage *listImage4 = [UIImage imageNamed:@"notification.png"]; 
    UIButton *listButton4 = [UIButton buttonWithType:UIButtonTypeCustom]; 
    listButton4.backgroundColor=[UIColor whiteColor]; 
    [[listButton4 layer] setBorderWidth:0.5f]; 
    listButton4.layer.borderColor =[[UIColor blackColor] CGColor]; 
    listButton4.layer.cornerRadius = btn.bounds.size.width/3.4;// this value vary as per your desire 
    listButton4.clipsToBounds = YES; 

    UIFont *fontnotification = [UIFont fontWithName:@"FontAwesome" size:18.0]; 
    UIColor *colornotification = [UIColor blueColor]; 

    NSDictionary *attrsDictionarynotification = [NSDictionary dictionaryWithObjectsAndKeys:fontnotification,NSFontAttributeName,colornotification,NSForegroundColorAttributeName, nil]; 
    // [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName,color,NSForegroundColorAttributeName, nil]; 

    NSAttributedString *attributedStrnotification = [[NSAttributedString alloc] initWithString:lablnotification.text attributes:attrsDictionarynotification]; 

    // get the image size and apply it to the button frame 
    CGRect listButton4Frame = listButton4.frame; 
    listButton4Frame.size = listImage4.size; 
    listButton4.frame = listButton4Frame; 

    [listButton4 setAttributedTitle:attributedStrnotification forState:UIControlStateNormal]; 
    [listButton4 addTarget:self 
        action:@selector(ActualNotificationClick:) 
      forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *jobsButton4 = 
    [[UIBarButtonItem alloc] initWithCustomView:listButton4]; 

    UIImage *listImage3 = [UIImage imageNamed:@"ec2.png"]; 
    UIButton *listButton3 = [UIButton buttonWithType:UIButtonTypeCustom]; 

    // get the image size and apply it to the button frame 
    CGRect listButton3Frame = listButton3.frame; 
    listButton3Frame.size = listImage3.size; 
    listButton3.frame = listButton3Frame; 

    [listButton3 setImage:listImage3 forState:UIControlStateNormal]; 
    [listButton3 addTarget:self 
        action:@selector(EmployeeClick:) 
      forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *jobsButton3 = 
    [[UIBarButtonItem alloc] initWithCustomView:listButton3]; 

    self.navigationItem.rightBarButtonItems= [NSArray arrayWithObjects:jobsButton2,jobsButton4, nil]; 
    self.navigationItem.leftBarButtonItems=[NSArray arrayWithObjects:jobsButton3, nil]; 


    //NSUserDefault... 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    userid = [defaults objectForKey:@"UserId"]; 
    NSLog(@"User Id is =%@",userid); 
    ServerString=[defaults objectForKey:@"ServerString"]; 

    DefaultRegionIDString=[defaults objectForKey:@"DefaultRegionIDString"]; 
    DefaultBranchIDString=[defaults objectForKey:@"DefaultBranchIDString"]; 
    DefaultSiteIDString=[defaults objectForKey:@"DefaultSiteIDString"]; 
    DefaultLocationString=[defaults objectForKey:@"DefaultLocationString"]; 
    DefaultDateString =[defaults objectForKey:@"DefaultDateString"]; 
    DefaultTimeString =[defaults objectForKey:@"DefaultTimeString"]; 
    DefaultEmployeeNameString=[defaults objectForKey:@"DefaultEmployeeNameString"]; 
    DefaultRegionNameString=[defaults objectForKey:@"DefaultRegionNameString"]; 
    DefaultBranchNameString=[defaults objectForKey:@"DefaultBranchNameString"]; 
    DefaultSiteNameString=[defaults objectForKey:@"DefaultSiteNameString"]; 
    DefaultEventTypeString=[defaults objectForKey:@"DefaultEventTypeString"]; 
    DefaultIncidentTypeString=[defaults objectForKey:@"DefaultIncidentTypeString"]; 
    DefaultsIncidentNameString=[defaults objectForKey:@"DefaultsIncidentNameString"]; 
    SegmentStringCheck=[defaults objectForKey:@"SegmentStringCheck"]; 
    CheckIncidentString=[defaults objectForKey:@"CheckIncidentString"]; 

    if([DefaultEventTypeString isEqualToString:@"1"]) 
    { 
     lblreportregion.text = DefaultRegionIDString; 
     lblreportbranch.text = DefaultBranchIDString; 
     lblreportsite.text = DefaultSiteIDString; 
     // lblreportinjurytype.text=DefaultIncidentTypeString; 
     txtreportlocation.text = DefaultLocationString; 
     txtreportdate.text = DefaultDateString; 
     txtreporttime.text = DefaultTimeString; 
     txtreportemp.text = DefaultEmployeeNameString; 
     txtreportregion.text=DefaultRegionNameString; 
     txtreportbranch.text=DefaultBranchNameString; 
     txtreportsite.text=DefaultSiteNameString; 
     // txtreportinjurytype.text = DefaultsIncidentNameString; 

    } 
    else if ([DefaultEventTypeString isEqualToString:@"2"]) 
    { 
     lblnearregion.text = DefaultRegionIDString; 
     lblnearbranch.text = DefaultBranchIDString; 
     lblnearsite.text = DefaultSiteIDString; 
     txtnearlocation.text = DefaultLocationString; 
     txtneardate.text = DefaultDateString; 
     txtneartime.text = DefaultTimeString; 
     txtnearemp.text = DefaultEmployeeNameString; 
     txtnearregion.text=DefaultRegionNameString; 
     txtnearbranch.text=DefaultBranchNameString; 
     txtnearsite.text=DefaultSiteNameString; 
    } 
    else if ([DefaultEventTypeString isEqualToString:@"3"]) 
    { 
     lblspotingregion.text = DefaultRegionIDString; 
     lblspotingbranch.text = DefaultBranchIDString; 
     lblspotingsite.text = DefaultSiteIDString; 
     txtspotinglocation.text = DefaultLocationString; 
     txtspotingdate.text = DefaultDateString; 
     txtspotingtime.text = DefaultTimeString; 
     txtsportingemp.text = DefaultEmployeeNameString; 
     txtspotingregion.text=DefaultRegionNameString; 
     txtspotingbranch.text=DefaultBranchNameString; 
     txtspotingsite.text=DefaultSiteNameString; 
    } 

    if([SegmentStringCheck isEqualToString:@"0"]) 
    { 
     segment.selectedSegmentIndex = UISegmentedControlNoSegment; 
     segment.selectedSegmentIndex = 0; 
     viewspoting.hidden=NO; 
     viewnear.hidden=YES; 
     viewreport.hidden=YES; 
    } 
    else if ([SegmentStringCheck isEqualToString:@"1"]) 
    { 
     segment.selectedSegmentIndex = UISegmentedControlNoSegment; 
     segment.selectedSegmentIndex = 1; 
     viewspoting.hidden=YES; 
     viewnear.hidden=NO; 
     viewreport.hidden=YES; 
     //Near... 

     [self nearserverconnection]; 
     [self nearserverconnectionincident]; 
     [self nearserverconnectionactivity]; 
    } 
    else if ([SegmentStringCheck isEqualToString:@"2"]) 
    { 
     segment.selectedSegmentIndex = UISegmentedControlNoSegment; 
     segment.selectedSegmentIndex = 2; 
     viewspoting.hidden=YES; 
     viewnear.hidden=YES; 
     viewreport.hidden=NO; 


     //Report... 

     [self reportserverconnection]; 
     [self reportserverconnectioninjury]; 
    } 
    else 
    { 
     segment.selectedSegmentIndex = UISegmentedControlNoSegment; 
     segment.selectedSegmentIndex = 0; 
     viewspoting.hidden=NO; 
     viewnear.hidden=YES; 
     viewreport.hidden=YES; 
    } 


    //.........................// 
    //Sporting Hide Code... 

    //Table... 
    tablesportingbranch.hidden=YES; 
    tablesportingregion.hidden=YES; 
    tablesportingsite.hidden=YES; 

    //Label... 
    lblsportingactivitytype.hidden=YES; 
    lblsportingdept.hidden=YES; 
    lblsportingemp.hidden=YES; 
    lblspotingbranch.hidden=YES; 
    lblspotingincidenttype.hidden=YES; 
    lblspotingregion.hidden=YES; 
    lblspotingsite.hidden=YES; 



    //TextFieldDelegate... 
    txtspotingsite.delegate=self; 
    txtsportingemp.delegate=self; 
    txtspotinglocation.delegate=self; 

    //Date Picker... 
    pickerspotingdate.hidden=YES; 
    pickerspotingtime.hidden=YES; 


    //............................// 

    //Near Hide Code... 

    //View... 
    // viewnear.hidden=YES; 

    //Table... 
    tablenearbranch.hidden=YES; 
    tablenearregion.hidden=YES; 
    tablenearsite.hidden=YES; 

    //Label... 
    lblnearactivitytype.hidden=YES; 
    lblnearbranch.hidden=YES; 
    lblneardept.hidden=YES; 
    lblnearemp.hidden=YES; 
    lblnearincidenttype.hidden=YES; 
    lblnearregion.hidden=YES; 
    lblnearsite.hidden=YES; 



    //TextFieldDelegate.. 
    txtnearsite.delegate=self; 
    txtnearemp.delegate=self; 
    txtnearlocation.delegate=self; 

    //Date Picker... 
    pickerneardate.hidden=YES; 
    pickerneartime.hidden=YES; 

    //...........................// 

    //Report Hide View Code... 

    //View... 
    // viewreport.hidden=YES; 

    //Table... 
    tablereportbranch.hidden=YES; 
    tablereportinjurytype.hidden=YES; 
    tablereportregion.hidden=YES; 
    tablereportsite.hidden=YES; 

    //Label... 
    lblreportbranch.hidden=YES; 
    lblreportdept.hidden=YES; 
    lblreportemp.hidden=YES; 
    lblreportinjurytype.hidden=YES; 
    lblreportregion.hidden=YES; 
    lblreportsite.hidden=YES; 

    //TextFieldDelegate... 
    txtreportsite.delegate=self; 
    txtreportemp.delegate=self; 
    txtreportlocation.delegate=self; 

    //Date Picker... 
    pickerreporttime.hidden=YES; 
    pickereportdate.hidden=YES; 

    //.............................// 

    //Font Asowme 

    //Show... 
    lblspotingShow.font = [UIFont fontWithName:@"FontAwesome" size:15]; 
    lblspotingShow.textColor = [UIColor blackColor]; 
    lblspotingShow.text = [NSString awesomeIcon:FaEye]; 

    //Scroll View... 
    [scrollspoting setContentSize:CGSizeMake(300, 500)]; 
    [scrollnear setContentSize:CGSizeMake(300, 500)]; 
    [scrollreport setContentSize:CGSizeMake(300, 730)]; 


    UISwipeGestureRecognizer *gestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeHandler:)]; 
    [gestureRecognizer setDirection:(UISwipeGestureRecognizerDirectionRight)]; 
    [self.view addGestureRecognizer:gestureRecognizer]; 

    //Button Diamiter... 

    //Spoting Button... 

    btnsportinghideadd.layer.cornerRadius = 4; // this value vary as per your desire 
    btnsportinghideadd.clipsToBounds = YES; 

    //Near Button... 

    btnnearhideadd.layer.cornerRadius = 4; // this value vary as per your desire 
    btnnearhideadd.clipsToBounds = YES; 

    //Report Button... 

    btnreportnext.layer.cornerRadius = 4; // this value vary as per your desire 
    btnreportnext.clipsToBounds = YES; 

    //Spoting... 

    [self spotingserverconnection]; 
    [self spotingserverconnectionactivity]; 
    [self spotingserverconnectionincident]; 


    [txtspotingsite addTarget:self action:@selector(spotingtextFieldDidChangeSite:) forControlEvents:UIControlEventEditingChanged]; 


    // prevents the scroll view from swallowing up the touch event of child buttons 

    [txtnearsite addTarget:self action:@selector(neartextFieldDidChangeSite:) forControlEvents:UIControlEventEditingChanged]; 

    [txtreportsite addTarget:self action:@selector(reporttextFieldDidChangeSite:) forControlEvents:UIControlEventEditingChanged]; 

    UITapGestureRecognizer *tapGesturereportinjury = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideSubViewreportinjury)]; 

    // prevents the scroll view from swallowing up the touch event of child buttons 
    tapGesturereportinjury.cancelsTouchesInView = NO; 

    [scrollreport addGestureRecognizer:tapGesturereportinjury]; 

    IssueSelectedIDarray=[[NSMutableArray alloc] init]; 
    IssueSelectedNamearray=[[NSMutableArray alloc] init]; 


    ReportInjurySelectedNamearray=[[NSMutableArray alloc] init]; 
    ReportInjurySelectedIDarray=[[NSMutableArray alloc] init]; 


    [self testInternetConnection]; 


    //Spoting Date and Time.. 


    NSDateFormatter *Spotingdateformatter; 

    Spotingdateformatter = [[NSDateFormatter alloc] init]; 
    [Spotingdateformatter setDateFormat:@"dd/MM/yyyy"]; 

    SpotingdateString = [Spotingdateformatter stringFromDate:[NSDate date]]; 
    NSLog(@"Current Time =%@",SpotingdateString); 
    CurrentDate=SpotingdateString; 


    NSDate * now = [NSDate date]; 
    NSDateFormatter *Spotingtimeformatter = [[NSDateFormatter alloc] init]; 
    [Spotingtimeformatter setDateFormat:@"hh:mm"]; 
    SpotingTimeString = [Spotingtimeformatter stringFromDate:now]; 
    NSLog(@"newDateString %@", SpotingTimeString); 

    //Near Date and Time.. 


    NSDateFormatter *Neardateformatter; 

    Neardateformatter = [[NSDateFormatter alloc] init]; 
    [Neardateformatter setDateFormat:@"dd/MM/yyyy"]; 

    NeardateString = [Neardateformatter stringFromDate:[NSDate date]]; 
    NSLog(@"Current Time =%@",NeardateString); 


    NSDate * nowNear = [NSDate date]; 
    NSDateFormatter *Neartimeformatter = [[NSDateFormatter alloc] init]; 
    [Neartimeformatter setDateFormat:@"hh:mm"]; 
    NearTimeString = [Neartimeformatter stringFromDate:nowNear]; 
    NSLog(@"newDateString %@", NearTimeString); 


    //Report Date and Time.. 


    NSDateFormatter *Reportdateformatter; 

    Reportdateformatter = [[NSDateFormatter alloc] init]; 
    [Reportdateformatter setDateFormat:@"dd/MM/yyyy"]; 

    ReportdateString = [Reportdateformatter stringFromDate:[NSDate date]]; 
    NSLog(@"Current Time =%@",ReportdateString); 


    NSDate * nowReport = [NSDate date]; 
    NSDateFormatter *Reporttimeformatter = [[NSDateFormatter alloc] init]; 
    [Reporttimeformatter setDateFormat:@"hh:mm"]; 
    ReportTimeString = [Reporttimeformatter stringFromDate:nowReport]; 
    NSLog(@"newDateString %@", ReportTimeString); 

} 

Его работа очень медленная. Есть ли способ ускорить его?

ViewName *Incedent =[[ViewName alloc] initWithNibName:@"ViewName" bundle:nil]; 
[self.navigationController pushViewController:Incedent animated:YES]; 

Я использовал этот код для pushviewcontroller.

+0

У вас много избыточности кода, поэтому сначала оптимизируйте работу с кодом. –

+0

@the_dahiya_boy Как это сделать? – Muju

+0

Избегайте называть ваш var в верхнем регистре. Почему вы используете 3 разных 'NSDateFormatter' для одного и того же материала? Если вы используете один и тот же фрагмент кода в каждом ViewController, вы можете захотеть его затенять или, по крайней мере, добавить протокол/расширение. – Larme

ответ

0

Вам нужно оценить, что делает ваш код, и узнать , где медленно. Я не знаю, что делает этот метод, но я делаю ставки:

[self testInternetConnection]; 

является одной из проблем. Прокомментируйте эту строку и посмотрите, что произойдет.

+0

Этот метод проверяет подключение к Интернету ... – Muju

+1

Ну, да ... но что происходит в «проверке интернет-соединения»? Он пытается за 10 секунд сделать соединение? Это тестирование, если можно достичь 10 разных серверов? У вас есть *, чтобы проверить соединение в этой точке вашего кода? – DonMag