Я новичок в Parse и базах данных, и сейчас я в замешательстве.
На виде есть 4 кнопки и метка. Это мой код (извините, он очень грязный):
Я только что слышал, что обновления пользовательского интерфейса и действия не должны выполняться в основном потоке, потому что PFQuery
не поддерживает пользовательский интерфейс напрямую.
И очевидно, лог выдает ошибку: Warning: A long-running Parse operation is being executed on the main thread. Break on warnParseOperationOnMainThread() to debug.
Я хотел бы использовать запрошенные данные вне блока для обновления label.text
, так как же мне установить данные (значение), чтобы я мог использовать их в других методах кода?
Я знаю, что это очень элементарный вопрос, но я был бы очень рад, если бы кто-нибудь помог мне с решением для этого.
PFQuery *query = [PFQuery queryWithClassName:@"DataClass"];
[query getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
if (!error) {
NSString *getTheStr1 = object[@"A"];
NSString *getTheStr2 = object[@"B"];
NSString *getTheStr3 = object[@"C"];
NSString *getTheStr4 = object[@"D"];
//when I press a button, each shows a different text on the label.
UIButton *button = (UIButton *)sender;
switch ([button tag]) {
case 1:
Label.text = [NSString stringWithFormat:@"%@", getTheStr1];
break;
case 2:
Label.text = [NSString stringWithFormat:@"%@", getTheStr2];
break;
case 3:
Label.text = [NSString stringWithFormat:@"%@", getTheStr3];
break;
case 4:
Label.text = [NSString stringWithFormat:@"%@", getTheStr4];
}
}
}];
Спасибо.
Я исхожу из моего предыдущего вопроса Как я могу получить несколько данных одновременно? (Синтаксический анализ БД, iOS)