Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Titanium JSON Story
Ryutaro Miyashita
October 09, 2013
Programming
0
240
Titanium JSON Story
Titanium / Objective-C JSON, Object processing experiment
Ryutaro Miyashita
October 09, 2013
Tweet
Share
More Decks by Ryutaro Miyashita
See All by Ryutaro Miyashita
ryugoo
0
1.2k
ryugoo
0
310
ryugoo
5
890
ryugoo
1
1.5k
ryugoo
2
1.2k
ryugoo
4
560
ryugoo
0
460
ryugoo
2
340
ryugoo
1
2.1k
Other Decks in Programming
See All in Programming
numeroanddev
1
230
pirosikick
4
950
danilop
1
730
heistak
2
130
borkdude
2
200
joergneumann
0
130
rarous
0
170
grapecity_dev
0
180
ryokbt
2
290
hanasuke
1
580
tarugoconf
1
1.5k
martysuzuki
1
400
Featured
See All Featured
samanthasiow
56
6.4k
rocio
155
11k
tammielis
237
23k
jeffersonlam
329
15k
jponch
103
5k
revolveconf
200
9.7k
chrislema
173
14k
malarkey
119
16k
brianwarren
82
4.7k
zenorocha
296
40k
hannesfritz
28
950
phodgson
87
3.9k
Transcript
{ } +40/ޠ 5JUBOJVN+40/4UPSZ "desc": "title": 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ͋ͱϞδϡʔϧ
3ZVUBSP.JZBTIJUB BLBSZVHPP $IBU8PSL SZVHPP@ SZVHPP 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF +40/ +BWB4DSJQU0CKFDU/PUBUJPO
{ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S",
"GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML" "GlossTerm": "St "Acronym": "SGML "Abbrev": "ISO 8 "GlossDef": { +40/ KTPOPSHFYBNQMFIUNM
4JNQMF -JHIU &BTZ γϯϓϧͰ͍͍ܰͯ͘͢ 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF
5JUBOJVN+40/ 5JUBOJVNͱ+40/ 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF
+40/QBSTF 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF +40/TUSJOHJGZ
+40/QBSTF 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF จࣈྻΛΦϒδΣΫτʹ͢Δ
ΦϒδΣΫτΛจࣈྻʹ͢Δ 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF +40/TUSJOHJGZ
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ศར
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 0CKFDUJWF$+40/ ωΠςΟϒ։ൃͱ+40/
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF /4+40/4FSJBMJ[BUJPO KTPOGSBNFXPSL +40/,JU BLB4#+TPO
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ωΠςΟϒ͍ʁ 5JUBOJVN0CKFDUJWF$1FSGPSNBODF
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ͔֬ΊͯΈͨ 5FTU
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF HJUIVCDPNSZVHPP5J"MUFSOBUF+40/
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 5JUBOJVN 0CKFDUJWF$
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 5JUBOJVN +40/TUSJOHJGZ NT +40/QBSTF NT /4+40/4FSJBMJ[BUJPO NTNT +40/,JU
NTNT 4#+TPO NTNT UJNFTTUSJOHJGZBOEQBSTF
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 0CKFDUJWF$ /4+40/TUSJOHJGZ NT /4+40/QBSTF NT +40/,JU NTNT NTNT
UJNFTTUSJOHJGZBOEQBSTF 4#+TPO
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF /4+40/TUSJOHJGZ NT /4+40/QBSTF NT +40/TUSJOHJGZ NT +40/QBSTF NT
5J 0CK$ UJNFTTUSJOHJGZBOEQBSTF
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 5Jͷ+40/͍ʂ 5JUBOJVN+40/1SPDFTTJOHJT'BTU
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ͭؾʹͳͬͨ *XPSSJFEBCPVU
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF for (var i = 0; i < 1000;
i++) { // Method Call Bottleneck } ϝιουݺͼग़͠ͷϘτϧωοΫ
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF { "1": "abcde",
"2": "abcde", "3": "abcde", "4": "abcde", ... "1000": "abcde" } GPSJO +4 0CKFDUJWF$ 'BTU &OVNFSBUJPO ʷ
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF GPSJO +4 0CKFDUJWF$ 'BTU &OVNFSBUJPO for (var key
in obj) { if (obj.hasOwnProperty(key)) { obj[key]; } } -‐(void)dictEnumerator:(id)args { ENSURE_SINGLE_ARG(args, NSDictionary); for (id i in [args keyEnumerator]) { args[i]; } }
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 'BTU &OVNFSBUJPO NT NT GPSJO NT NT +4
0CK$ ʷ ʷ ʷ ʷ
Ϟδϡʔϧݺͼग़͠ ͍ʁ .PEVMFNFUIPEDBMMJTTMPX ͔ͯ͠͠ 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF
ࠓݴ͍͔ͨͬͨࣄ JOPUIFSXPSET 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF
5Jͷ+40/ ͍ Ϟδϡʔϧͷϝιουݺͼग़͠ ͍ ͔ 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ҆৺͓ͯ͠͏ ϧʔϓதͰҙ
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF CODESTRONG! ͓͠·͍