Может ли NSPredicate использовать поиск без учета регистра при сравнении Core Data IN? (Свифт 4)

Вы можете изменить состояние, а затем выполнить вычисления в обратном вызове setState . В соответствии с документацией React это «гарантировано срабатывает после того, как обновление было применено».

Это должно быть сделано в componentDidMount или где-то еще в коде (например, в обработчике событий изменения размера) чем в конструкторе.

Это хорошая альтернатива window.requestAnimationFrame, и у него нет проблем, которые некоторые пользователи упомянули здесь (необходимо объединить его с setTimeout или вызвать его несколько раз). Например:

class AppBase extends React.Component {
    state = {
        showInProcess: false,
        size: null
    };

    componentDidMount() {
        this.setState({ showInProcess: true }, () => {
            this.setState({
                showInProcess: false,
                size: this.calculateSize()
            });
        });
    }

    render() {
        const appStyle = this.state.showInProcess ? { visibility: 'hidden' } : null;

        return (
            
...
...
); } }

1
задан Bjørn Ruthberg 4 March 2019 в 12:34
поделиться

1 ответ

Спасибо Martin R за ваш комментарий, он привел меня к решению, которое сработало для меня. Я закончил с этим решением. Это не совсем то, что я хотел, но, зная, что в массиве ids редко будет больше 10 записей, он будет делать это сейчас, так как по крайней мере решает проблему с памятью. Надеемся, что Swift и Core Data обеспечат лучшее решение в будущем.

var predicates = [NSPredicate]()

for id in idList
{
     predicates.append(NSPredicate(format: "temporaryId LIKE[c] %@", id))
}

fetchRequest.predicate = NSCompoundPredicate(orPredicateWithSubpredicates: predicates)
0
ответ дан Bjørn Ruthberg 4 March 2019 в 12:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: