パンフレット記事「Combine Operator ガイド」についての解説と補足
YUMEMI.swift #13 〜裏iOSDC〜 https://yumemi.connpass.com/event/222372/
ʮ$PNCJOF0QFSBUPSΨΠυʯղઆͱิӉࠤݟެี1/22
View Slide
Ӊࠤݟެีʢ!VTBNJLʣw J04鲠鳫鲰鳃鲚w 鳍鲟鳫鳢鳣גࣜձࣾJ04鲾鲻鲧鳢鱅鳁w .PCJMF"DU鳢鱅鲸鱅w ٕज़ಉਓࢽ鲗ॻ鱉鱫鱉鲃鱞w 鲋鲆鲄鱳鱏ख鱉鲇鱜鱫鱉鲃鱞2/22
J04%$ύϯϑϨοτهࣄΛॻ͖·ͨ͠w $PNCJOF0QFSBUPS鲤鲜鳁w 1%' #005)w IUUQTUZQFEMBCCPPUIQNJUFNTw 鲭鳫鳏鳣鲫鱅鳁 (JU)VCw IUUQTHJUIVCDPNVTBNJL$PNCJOF0QFSBUPS(VJEF4BNQMF3/22
τʔΫͱهࣄw J04%$+BQBO鱳鳙鲜鳫鱴ɺ鲉鱴鲏鳀鱅鲧鲳鲻鲯鳟鳫w 鲄鲘鱯鱬ಉ࣌ࢹௌw "TLUIF4QFBLFSw هࣄ鱬鱴্ه鱳鲍鱋鱯鲏্鱑鲏鱴鱜鱉w 鳍鲛鱅鳁鳈鲻鲧鲗鱔鲑鲐ਓ鱴鱉鲐ɺخ鱜鱉4/22
ͦͦهࣄಡΜͰΔʁw ޙճ鱜鱰鱯鲏鱑鱦w ೳಈత鱰ಡ鲇鱋鱭ҙࣝ鱜鱯鱉鱭ಡ鲆鱯鱉w 鲇鲔鲏鱭ཷ鲆鱑鱦ɾɾɾw ޙ鱬ಡ鲅ɺ鳢鱅鲿鲛鳫鲨鳢鲱鳀ɺੵಡɺɾɾɾ5/22
ͪΐͬͱಡΜͰΈΑ͏w ࠓ鱴ɺهࣄ鱳༰鲗鱛鱨鱭ோ鲆鱫鲄鲐w 鳉鳫鳍鳤鲻鳀鲗࣋鱨鱫鱉鲐ਓ鱴鱡鱷ݟ鱫鱲w 鲃鱤鱴1%'鲸鲞鳫鳥鱅鳁 #005)6/22
$PNCJOFͱw 鱢鲇鱢鲇$PNCJOF鱨鱫鱯鱰ʁw 鲢鳎鲰鲟鲧鳀鱐鲎鲢鳎鲰鲟鲧鳀鱰鲜鳑鳫鳀鲗鱍鲐w ૹ৴ʢ1VCMJTIFSʣ鱭ड৴ʢ4VCTDSJCFSʣw খ鱚鱔؆୯鱯鲭鳫鳏鳣鲫鱅鳁鱬հw 9DPEF1MBZHSPVOE鱬鱞鱕ࢼ鱠鲐7/22
0QFSBUPSw ૹ৴ʢ1VCMJTIFSʣ鱭ड৴ʢ4VCTDSJCFSʣҎ֎鱳ୈ鱳ཁૉw 0QFSBUPS鱴ɺ1VCMJTIFS鲗ผ鱳1VCMJTIFS鱰ม鱞鲐w 鱘鱘鱬鱴map0QFSBUPS鲗հ8/22
.BSCMF%JBHSBNw 0QFSBUPS鱳ਤࣔ9/22
$PNCJOFͷར༻γʔϯw 鳈鲜鳫鲿鲛鳫鲨w 7JFX.PEFM鱐鲎7JFX$POUSPMMFS鱽鲗鱍鲐ྫw 鳈鲜鳫鲿鲛鳫鲨鱳鱭鱒鱰0QFSBUPS鱑鱰ཱ鱩w $PNCJOF鱬鳈鲜鳫鲿鲛鳫鲨鱑鱒鲑鱉鱰ॻ鱖鲐10/22
1VCMJTIFSͷܕফڈw 鳈鲜鳫鲿鲛鳫鲨鱳鲫鱅鳁鱳த鱬鱨鱫鱉鱤ܕফڈ鱳հw 0QFSBUPS鲗ෳ鱋鱭ɺ1VCMJTIFS鱳ܕ鱑ෳࡶ鱰鱯鲐w ܕফڈ鱞鲐鱤鲆鱳eraseToAnyPublisher0QFSBUPS鱑鱇鲐w ෳࡶ鱯ܕ鲗AnyPublisherܕ鱰鱞鲐11/22
0QFSBUPSͷछྨw ެࣜ鳢鳍鲙鳤鳫鲱鲗ݟ鲐鱭0QFSBUPS鱳ଟ鱚鱰ѹ鱚鲑鲐w 鲍鱔鱋鲇鱳鲗Ѳ鱞鲐鱳鱑େࣄ12/22
ܕΛม͢Δw ઌ鱰ग़鱜鱤map鱳ྫ鱬鱴ɺܕ鱴ಉ鱝鱬鱥鱖ม鱜鱫鱉鱤w map鱬ܕ鲗ม鱞鲐鳉鲷鱅鳫鱳հw 鱘鲑鱴࣍鱳0QUJPOBMܕ鱳鱰鱩鱯鱕鱤鲆鱳લஔ鱒13/22
0QUJPOBMܕͷΞϯϥοϓw 0QUJPOBMܕ鲗鱋鲃鱔ѻ鱋鱤鲆鱳0QFSBUPSw replaceNilw compactMap14/22
ม࣌ͷΤϥʔw 鲠鳡鱅鲜鳑鳫鳀鲗ൃੜ鱚鱠鲐0QFSBUPSw tryMapw ࣍鱳鲠鳡鱅鳇鳫鳁鳢鳫鲨鱳鱰鱩鱯鱕15/22
ΤϥʔϋϯυϦϯάw 鲠鳡鱅鳇鳫鳁鳢鳫鲨鱞鲐0QFSBUPSw retryw replaceErrorw catchw 鱘鱳鱇鱤鲏ࢴ໘ෆ鱯ײ鱝鱑鱇鲐鱑ɺ鳢鳀鳡鲜鱴આ໌鱜鱤鱐鱨鱤16/22
ϑΟϧλϦϯάw 鲗ࣺ鱫鲐0QFSBUPSw 鱉鲒鱉鲒鱇鲐鱑ɺ.BSCMF%JBHSBN鱰鲍鲐ਤࣔ鱬鲀鲁鲔鲐鱴鱟17/22
ෳͷ1VCMJTIFSΛ·ͱΊΔw ෳ鱳1VCMJTIFS鲗鱷鱭鱩鱰鲃鱭鲆鲐0QFSBUPSw combineLatestw zipw marge18/22
ॻ͔ͳ͔ͬͨ͜ͱɿଞͷ0QFSBUPSw ଞ鱰decodeflatMap鱇鱤鲏鲇େࣄw decode鱴鱚鲀鱮鱜鱔鱯鱉鱳鱬লུ鱜鱤w flatMap鱴ٯ鱰આ໌鱑鱙鱦鲈鱩鱔鱳鱬ආ鱖鱤w Կ鱭鱐鱜鱤鱐鱨鱤鱭鱘鲒鱬鱴鱇鲐鱑ɾɾɾ19/22
ॻ͔ͳ͔ͬͨ͜ͱɿඇಉظॲཧw ඇಉظॲཧʢ鳅鲻鳀鳧鱅鲧௨৴鱯鱮ʣw URLSession鱳1VCMJTIFS鲇େࣄ鱬鱴鱇鲐w 鱤鱥ɺࠓޙ鱴BTZODBXBJU鲗鱋ํ鱰鱯鲐鱥鲒鱋20/22
4XJGU$PODVSSFODZͱ$PNCJOFw هࣄࣥච࣌鱬鱴4XJGU$PODVSSFODZ鱰৮鲑鲐鱳鱴ࠔ鱥鱨鱤w 4XJGU$PODVSSFODZ鱴ڧྗ鱬鱇鲏ࠓޙ鱳ओྲྀw $PNCJOF鱴ඇಉظॲཧ鲉ฒྻॲཧ鲍鲏鲇ɺ鳈鲜鳫鲿鲛鳫鲨༻్21/22
ײͳͲ͋Εฉ͔͍ͤͯͩ͘͞w $PNCJOF0QFSBUPS鲤鲜鳁w 1%' #005)w IUUQTUZQFEMBCCPPUIQNJUFNTw 鲭鳫鳏鳣鲫鱅鳁 (JU)VCw IUUQTHJUIVCDPNVTBNJL$PNCJOF0QFSBUPS(VJEF4BNQMF22/22