×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ࣗݾհ w ԦቨʢΦΪPOFWDBUʣ+1 w -JOF"ET -JOFόΠτ (BNF$BTU 5IVOEFS w IUUQTHJUIVCDPNPOFWDBU w IUUQPOFWDBU
Slide 2
Slide 2 text
ੈքҰ൪ͷ ϓϩάϥϛϯάݴޠʁ
Slide 3
Slide 3 text
+BWB4DSJQUؒҧ͍ͳ͍ IUUQHJUIVUJOGP
Slide 4
Slide 4 text
+BWB4DSJQU$PSF J04
Slide 5
Slide 5 text
+BWB4DSJQU$PSF var num = 5 + 5 var triple = function(value) { return value * 3} triple(num) //30 import JavaScriptCore let context = JSContext() context.evaluateScript("var num = 5 + 5") context.evaluateScript("var triple = function(value) { return value * 3 }") let tripleNum: JSValue = context.evaluateScript("triple(num)") +BWB4DSJQU 4XJGU
Slide 6
Slide 6 text
import JavaScriptCore let context = JSContext() context.evaluateScript("var num = 5 + 5") context.evaluateScript("var triple = function(value) { return value * 3 }") let tripleNum: JSValue = context.evaluateScript("triple(num)") 1MBJO4USJOH'VODUJPOBMJUZ
Slide 7
Slide 7 text
import JavaScriptCore let context = JSContext() context.evaluateScript("var num = 5 + 5") context.evaluateScript("var triple = function(value) { return value * 3 }") let tripleNum: JSValue = context.evaluateScript("triple(num)") 1MBJO4USJOH'VODUJPOBMJUZ 3VOUJNF
Slide 8
Slide 8 text
+41BUDI Ԧቨ
Slide 9
Slide 9 text
+BWB4DSJQUΛͬͯɺ ΞϓϦͷϝιʔυΛࠩ͠ସ͑ΔϥΠϒϥϦʔ +41BUDIͱ IUUQTHJUIVCDPNCBOH+41BUDI
Slide 10
Slide 10 text
8IZ w "QQਃͱϨϏϡʔ ͍ w ಛٸਃ੍ؒݶ w मਖ਼͚ͩͰͳ͘ɺػ ೳՃՄೳɻ
Slide 11
Slide 11 text
͍ํ
Slide 12
Slide 12 text
͍ํ
Slide 13
Slide 13 text
͍ํ w $PDPB1PETQPE+41BUDI w <+1&OHJOFTUBSU&OHJOF> w <+1&OHJOFFWBMVBUF4DSJQUTDSJQU> 4DSJQU
Slide 14
Slide 14 text
ࠩ͠ସ͑ΔͷΛఆٛ͢ΔKT 4DSJQU ϩʔΧϧϑΝΠϧɺωοτɺετϦϯά ಛఆͳOBNFDPOWFOUJPOͰɺ0CKFDUJWF$ޓ
Slide 15
Slide 15 text
%FNP Talk is cheap. Show me the code.
Slide 16
Slide 16 text
3VMFEFpOF$MBTT w Ϋϥεͷϝιʔυ࠶ఆٛ defineClass("ClassName", { method: function() { ... }, }) @implementation ClassName -(void)method { … } defineClass(classDeclaration, instanceMethods, classMethods)
Slide 17
Slide 17 text
3VMFΞϯμʔόʔ w ΫϥεͷεϖʔεΛࠩ͠ସ͑Δ @implementation JPTestObject - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { } @end defineClass("JPTableViewController", { tableView_didSelectRowAtIndexPath: function(tableView, indexPath) { ... }, })
Slide 18
Slide 18 text
3VMF03*( w 03*(Λ͍ͨΒɺલͷ࣮ΛݺͿ @implementation JPTableViewController - (void) viewDidLoad { } @end defineClass("JPTableViewController", { viewDidLoad: function() { self.ORIGviewDidLoad(); }, })
Slide 19
Slide 19 text
3VMFTFUUFSHFUUFS w TFUUFSPSHFUUFSΛ͏ @interface JPTableViewController @property (nonatomic) NSArray *data; @end @implementation JPTableViewController @end defineClass("JPTableViewController", { viewDidLoad: function() { var data = self.data() self.setData(data.toJS().push("JSPatch") }, })
Slide 20
Slide 20 text
3VMF0UIFS IUUQTHJUIVCDPNCBOH+41BUDI XJLJ6TBHFPGEFpOF$MBTT μϒϧΞϯμʔόʔ CMPDL($% TVQFS QSPUPDPM OFXQSPQFSUZNFUIPE FYUFOTJPO
Slide 21
Slide 21 text
+41BUDI࣮ݱݪཧ ForwardInvocation Core Concept: IUUQCMPHDOCBOHOFUUFDI தࠃޠͰ͕͢ɻɻ
Slide 22
Slide 22 text
ϦεΫ w தؒऀ߈ܸ .*5. )5514ඞཁ w ϩʔΧϧվ͟Μ҉߸Խ͢Δ w ύϑΥʔϚϯεόʔδϣϯཧΫϦςΟΧϧ όά͚ͩ
Slide 23
Slide 23 text
4XJGU
Slide 24
Slide 24 text
4XJGU w /40CKFDUͱγεςϜ"1*0, EZOBNJD EJTQBUDI w ଞͷEZOBNJDLFZXPSEΛՃඞཁ SVOUJNF ར༻͢ΔͨΊ w +4ʹɺDMBTT໊ͷલNPEVMF໊Ճඞཁ w ݁ɿ͑·͕͢ɺ໘ɻΊͯͷํ͕͍͍
Slide 25
Slide 25 text
5IBOLZPV '"2