1

Я хочу, чтобы обновить таблицу из фонового потока, используя эту часть кодаEXC_BAD_ACCESS в то время как [WKInterfaceTable setNumberOfRows: withRowType]

__block typeof(self.tableB) self_tableB = self.tableB; 
    [lwc setBaseControllerCallback:^(int ndx) { 
     __block typeof(ndx) ndx_t = ndx; 
     [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
      [self_tableB setNumberOfRows: 0 withRowType:TABLEELEMENT]; 
      [self_tableB setNumberOfRows: ndx_t withRowType:TABLEELEMENT]; 
     }]; 

    }]; 

где

^(int ndx) { 
//... 
} 

является блок вызывается из фонового потока (NSThread), а lwc - это экземпляр класса пользовательских фоновых потоков.

Чтобы очистить этот метод вызывается как с: // код внутри нити если (handlerBase_inner) { handlerBase_inner (NDX ++); }

Так, в [self_tableB setNumberOfRows: ndx_t withRowType:TABLEELEMENT]; я могу видеть EXC_BAD_ACCESS. Зачем? Что такое

ответ

1

Я беспокоюсь о self_tableB. Я не уверен, что вы хотите получить сильную ссылку на него, искусственно поддерживая его, может привести к тому, что он вернется к своему делегату.

__block __weak typeof(self.tableB) self_tableB = self.tableB;

Добавление слабой аннотаций мощи на хитрость.

 Смежные вопросы

  • Нет связанных вопросов^_^