Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Masaru Ichikawa
5,155 views
CoreDataでのsubqueryの使い方
CoreDataでのsubqueryの使い方
Technology
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 27
2
/ 27
3
/ 27
4
/ 27
5
/ 27
6
/ 27
7
/ 27
8
/ 27
9
/ 27
10
/ 27
11
/ 27
12
/ 27
13
/ 27
14
/ 27
15
/ 27
16
/ 27
17
/ 27
18
/ 27
19
/ 27
20
/ 27
21
/ 27
22
/ 27
23
/ 27
24
/ 27
25
/ 27
26
/ 27
27
/ 27
More Related Content
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
by
Amazon Web Services Japan
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
PDF
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
by
NTT DATA Technology & Innovation
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
PDF
PHPからgoへの移行で分かったこと
by
gree_tech
PDF
40歳過ぎてもエンジニアでいるためにやっていること
by
onozaty
PDF
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
by
Yahoo!デベロッパーネットワーク
TLS, HTTP/2演習
by
shigeki_ohtsu
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
by
Amazon Web Services Japan
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
by
NTT DATA Technology & Innovation
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
PHPからgoへの移行で分かったこと
by
gree_tech
40歳過ぎてもエンジニアでいるためにやっていること
by
onozaty
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
by
Yahoo!デベロッパーネットワーク
What's hot
PDF
MQTTとAMQPと.NET
by
terurou
PDF
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
PDF
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
PDF
DevOps with Database on AWS
by
Amazon Web Services Japan
PDF
Hive on Tezのベストプラクティス
by
Yahoo!デベロッパーネットワーク
PPTX
Azure Arc Enabled Serverの活用
by
Tomoya Katayama
PDF
Datadog による Container の監視について
by
Masaya Aoyama
PPTX
分散システムについて語らせてくれ
by
Kumazaki Hiroki
PDF
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
by
昌桓 李
PDF
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
PDF
ビッグデータ処理データベースの全体像と使い分け
by
Recruit Technologies
PDF
Linux女子部 systemd徹底入門
by
Etsuji Nakai
PDF
InnoDBのすゝめ(仮)
by
Takanori Sejima
PDF
OSS活動の活発さと評価の関係について
by
Takuto Wada
PPT
Raft
by
Preferred Networks
PDF
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
Zabbixのパフォーマンスチューニング & インストール時の注意点
by
Kodai Terashima
PDF
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
by
ippei_suzuki
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
MQTTとAMQPと.NET
by
terurou
PlaySQLAlchemy: SQLAlchemy入門
by
泰 増田
マルチテナント化で知っておきたいデータベースのこと
by
Amazon Web Services Japan
DevOps with Database on AWS
by
Amazon Web Services Japan
Hive on Tezのベストプラクティス
by
Yahoo!デベロッパーネットワーク
Azure Arc Enabled Serverの活用
by
Tomoya Katayama
Datadog による Container の監視について
by
Masaya Aoyama
分散システムについて語らせてくれ
by
Kumazaki Hiroki
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
by
昌桓 李
Dockerfile を書くためのベストプラクティス解説編
by
Masahito Zembutsu
ビッグデータ処理データベースの全体像と使い分け
by
Recruit Technologies
Linux女子部 systemd徹底入門
by
Etsuji Nakai
InnoDBのすゝめ(仮)
by
Takanori Sejima
OSS活動の活発さと評価の関係について
by
Takuto Wada
Raft
by
Preferred Networks
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
by
Yahoo!デベロッパーネットワーク
Zabbixのパフォーマンスチューニング & インストール時の注意点
by
Kodai Terashima
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
by
ippei_suzuki
マイクロにしすぎた結果がこれだよ!
by
mosa siru
イミュータブルデータモデル(世代編)
by
Yoshitaka Kawashima
Viewers also liked
PDF
やはりお前らのCore Dataの使い方も間違っている
by
今城 善矩
PDF
StoryboardでUIを使いまわす
by
Masaki Fuke
PDF
Company Scouter
by
Shuichi Tsutsumi
PDF
Core dataと比較してrealmを使ったまとめ
by
Fumiya Sakai
PDF
iOS UI Component API Design
by
Brian Gesiak
PDF
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
by
Kosuke Ogawa
PDF
Advanced Core Data
by
Make School
PPTX
技術選択とアーキテクトの役割
by
Toru Yamaguchi
PDF
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
by
Yusuke Wada
PDF
IPAB2017 深層学習を使った新薬の探索から創造へ
by
Preferred Networks
やはりお前らのCore Dataの使い方も間違っている
by
今城 善矩
StoryboardでUIを使いまわす
by
Masaki Fuke
Company Scouter
by
Shuichi Tsutsumi
Core dataと比較してrealmを使ったまとめ
by
Fumiya Sakai
iOS UI Component API Design
by
Brian Gesiak
UIKit DynamicsとCoreMotionを組み合わせて物体を転がしてみた
by
Kosuke Ogawa
Advanced Core Data
by
Make School
技術選択とアーキテクトの役割
by
Toru Yamaguchi
Podcastを支える技術、エンジニアのためのWebメディア、そしてCPAN
by
Yusuke Wada
IPAB2017 深層学習を使った新薬の探索から創造へ
by
Preferred Networks
CoreDataでのsubqueryの使い方
1.
SUBQUERYを使って CoreDataで対多関連を検索 @masaichi
2.
自己紹介 • 市川 勝 •
Twitter: @masaichi, github: @masarusanjp • エンジニア (love obj-c, ruby) • iOSアプリを仕事で開発してます
3.
よろしくお願いします
4.
SUBQUERYとは?
5.
CoreDataで、 あるエンティティの対多関連に対する 副問い合わせをするための構文
6.
リファレンス • NSExpression Class
Referenceに書いてある (not NSPredicate) • https://developer.apple.com/library/ios/ documentation/cocoa/reference/ foundation/Classes/NSExpression_Class/ Reference/NSExpression.html
7.
構文 SUBQUERY( collection_expression, variable_expression, predicate )
8.
構文 [NSPredicate predicateWithFormat:@ SUBQUERY( collection_expression, variable_expression, predicate ).@count ==
0 ];
9.
構文 [NSPredicate predicateWithFormat:@ SUBQUERY( collection_expression, variable_expression, predicate ).@count ==
0 ]; <- コレクションとして扱われる
10.
例
11.
アルバムと曲の関連について
12.
レーティングが1以上、4以下 の曲を含むアルバムを検索
13.
[NSPredicate predicateWithFormat: @ SUBQUERY(songs,
$s, $s.rating >= 1 AND $s.rating <= 4 ).@count > 0 ]; レーティングが1以上、4以下 の曲を含むアルバムを検索
14.
[NSPredicate predicateWithFormat: @ SUBQUERY(songs,
<- 関連の名前 $s, $s.rating >= 1 AND $s.rating <= 4 ).@count > 0 ]; レーティングが1以上、4以下 の曲を含むアルバムを検索
15.
[NSPredicate predicateWithFormat: @ SUBQUERY(songs,
$s, <- 条件内で使う変数名 $s.rating >= 1 AND $s.rating <= 4 ).@count > 0 ]; レーティングが1以上、4以下 の曲を含むアルバムを検索
16.
[NSPredicate predicateWithFormat: @ SUBQUERY(songs,
$s, $s.rating >= 1 AND $s.rating <= 4 ).@count > 0 ]; レーティングが1以上、4以下 の曲を含むアルバムを検索 <- 条件
17.
レーティングが1以上、4以下 の曲を含むアルバムを検索 [NSPredicate predicateWithFormat: @ SUBQUERY(songs,
$s, $s.rating >= 1 AND $s.rating <= 4 ).@count > 0 <- 評価 ];
18.
なんで使うの?
19.
ANYでも出来ないの?
20.
レーティングが1以上、4以下 の曲を含むアルバムを検索 [NSPredicate predicateWithFormat: @ ANY
songs.rating >= 1 AND ANY songs.rating <= 4 ];
21.
レーティングが1以上、4以下 の曲を含むアルバムを検索 SELECT DISTINCT 0,
t0.Z_PK FROM ZALBUM t0 JOIN ZSONG t1 ON t0.Z_PK = t1.ZALBUM JOIN ZSONG t2 ON t0.Z_PK = t2.ZALBUM WHERE ( t1.ZRATING >= ? AND t2.RATING <= ?)
22.
[NSPredicate predicateWithFormat: @ SUBQUERY(songs,
$s, $s.rating >= 1 AND $s.rating <= 4 ).@count > 0 ]; レーティングが1以上、4以下 の曲を含むアルバムを検索
23.
レーティングが1以上、4以下 の曲を含むアルバムを検索 SELECT 0, t0.Z_PK
FROM ZALBUM t0 WHERE ( SELECT COUNT(t1.Z_PK) FROM ZSONG t1 WHERE ( t0.Z_PK = t1.ZALBUM AND (( t1.ZRATING >= ? AND t1.ZRATING <= ?)) ) ) > ?
24.
まとめ • SUBQUERYを使うと対多関連に対して、副問い 合わせが出来る • 同じ関連に対する条件が複数ある場合、 SUBQUERYを使わないとうまくいかない •
道具の1つとして状況に応じて使いましょう • もっと良い表現があれば教えてください
25.
サンプルコード • https://github.com/masarusanjp/ CoreDataPredicateDemo • 実行時引数に 「-com.apple.CoreData.SQLDebug
1」 をつけるとSQLが吐かれます
26.
サンプルコード • https://github.com/masarusanjp/ CoreDataPredicateDemo • 実行時引数に 「-com.apple.CoreData.SQLDebug
1」 をつけるとSQLが吐かれます
27.
ありがとうございました
Download