NSPredicateから#Predicateへ〜実例から学ぶPredicateの進化 by Yuhan Chen

iOSDC Japan 2024
レギュラートーク(20分)

NSPredicateから#Predicateへ〜実例から学ぶPredicateの進化

Ckitakishi Yuhan Chen Ckitakishi
4

Predicateは、与えられた入力値に対して真/偽のテストを行うために使用される論理条件です。Core Data(もちろんSwiftDataも)、Spotlight、iCloud File Search、HealthKit、EventKitなどを使ったことがあるなら、きっとPredicateに馴染みがあるでしょう。

これまではNSPredicateが活躍してきましたが、時間が経つにつれ、NSPredicateを使う際に、特にSwiftエコシステムを中心とする場合、時代遅れと感じる点が増えてきました。こういった点を改善するため、昨年FoundationにSwift Predicateが新たに加わりました。さらに、マクロの導入により、#Predicateを使って新しいPredicateを構築できるようになりました。

NSPredicateと比較して、Swift Predicateには以下のような利点があります:

  • 型安全
  • Swift型に利用可能
  • @Sendableに準拠
  • 比較的シンプルな構文
  • 自動補完(文字列への過度な依存がなくなる)
  • Codableとのシームレスな連携

このトークでは、これらの利点をもとに、実際の例と活用方法を話していきます。また、まだ絶賛開発中のものであるため、その制限や将来に向けた展望についても触れます〜