• Не обновляется UI на девайсе, в симуляторе все работает. В чем может быть дело?

    @maxonflic Автор вопроса
    @yakubov исправил с потоками, добавил везде NSLog и заметил вот что:

    [[NSNotificationCenter defaultCenter] postNotificationName:@"MyNotification"
    object:self]; - отправляет сообщение запустить мой метод - он запускается:

    - (void)maxkitten
    {





    NSArray *savedItems = [[NSUserDefaults standardUserDefaults] valueForKey:@"DKey"];



    NSPredicate *pn = [NSPredicate predicateWithFormat:@"SELF.weekDay == %@" , @"пн"];
    NSPredicate *vtr = [NSPredicate predicateWithFormat:@"SELF.weekDay == %@" , @"вт"];
    NSPredicate *sr = [NSPredicate predicateWithFormat:@"SELF.weekDay == %@" , @"ср"];
    NSPredicate *chet = [NSPredicate predicateWithFormat:@"SELF.weekDay == %@" , @"чт"];
    NSPredicate *ptn = [NSPredicate predicateWithFormat:@"SELF.weekDay == %@" , @"пт"];
    NSPredicate *sb = [NSPredicate predicateWithFormat:@"SELF.weekDay == %@" , @"сб"];
    NSArray *pon = [savedItems filteredArrayUsingPredicate:pn];
    NSArray *vtor = [savedItems filteredArrayUsingPredicate:vtr];
    NSArray *sred = [savedItems filteredArrayUsingPredicate:sr];
    NSArray *cher = [savedItems filteredArrayUsingPredicate:chet];
    NSArray *ptnc = [savedItems filteredArrayUsingPredicate:ptn];
    NSArray *subb = [savedItems filteredArrayUsingPredicate:sb];


    NSDate *dateToday =[NSDate date];
    NSDateFormatter *format = [[NSDateFormatter alloc] init];
    [format setDateFormat:@"EEEE"];
    NSString *string = [format stringFromDate:dateToday];


    NSInteger week = [[NSUserDefaults standardUserDefaults] integerForKey:@"checkWeek"];

    NSInteger subgr=[[NSUserDefaults standardUserDefaults] integerForKey:@"checkSubgroup"];














    if ([string isEqualToString:@"Monday"])

    {
    block(pon,week,subgr);



    }

    else if ([string isEqualToString:@"Tuesday"])

    {

    block(vtor,week,subgr);
    }

    else if ([string isEqualToString:@"Wednesday"])

    {
    block(sred,week,subgr);
    }
    else if ([string isEqualToString:@"Thursday"])

    {
    NSLog(@"выбрало четверг");
    block(cher,week,subgr);

    }

    else if ([string isEqualToString:@"Friday"])
    {
    block(ptnc,week,subgr);

    }

    else if ([string isEqualToString:@"Saturday"])
    {
    block(subb,week,subgr);

    }
    else if ([string isEqualToString:@"Sunday"])
    {




    Recipe *recipe1 = [Recipe new];




    recipe1.name = @"Выходной день";
    recipe1.detail =@"";
    recipe1.detail2= @"";
    recipe1.imageFile = @"logo.jpg";


    Recipe *recipe2 = [Recipe new];
    recipe2.name = @"Выходной день";
    recipe2.detail =@"";
    recipe2.detail2= @"";
    recipe2.imageFile = @"logo.jpg";

    Recipe *recipe3 = [Recipe new];
    recipe3.name = @"Выходной день";
    recipe3.detail =@"";
    recipe3.detail2= @"";
    recipe3.imageFile = @"logo.jpg";

    Recipe *recipe4 = [Recipe new];
    recipe4.name = @"Выходной день";
    recipe4.detail =@"";
    recipe4.detail2= @"";
    recipe4.imageFile = @"logo.jpg";

    recipes = [NSArray arrayWithObjects:recipe1, recipe2, recipe3, recipe4, nil];


    }




    [self.tableView beginUpdates];
    //[self.tableView insertRowsAtIndexPaths:indexPath.row withRowAnimation:UITableViewRowAnimationFade];

    [self.tableView reloadData];
    [self.tableView endUpdates];




    }

    По итогу - на симуляторе условия с четвергом выполняется, а потом выполняется блок, на девайсе - условие не выпоняется, и оно сразу же запускает метод reloadData. Как это решить? Почему так происходит?
  • Не обновляется UI на девайсе, в симуляторе все работает. В чем может быть дело?

    @maxonflic Автор вопроса
    до момента написания поста, я пытался поиграть с различными потоками и в методе - (void)parserDidEndDocument:(NSXMLParser *)parser, использовал загрузку данных в user defaults в побочном потоке. По итогу - все работает на симуляторе. На девайсе - отваливается. Вы уверены что трабл в том, что где-то рассинхрон?