SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
NSInvocationの
便利さとハマりどころ
2013/12/21
Retty株式会社
櫻井 洋一郎(@saku2saku)
自己紹介
• 名前:櫻井 洋一郎 (@saku2saku)
• お仕事:Retty株式会社

    iPhoneアプリ、とんかつ担当

• 言語:Obj-C, PHP, Java, etc…
• 趣味:漫画・プログラミング
2
今までの製作
for iPhone

for iPad

for Web

注:コミッタではなく、

  利用したシステム制作の経験です

3
NSInvocationって?

•

メソッドをシグニチャからコールする仕組み
リフレクション?

photo by:Matthew Paulson
http://www.flickr.com/photos/matthewpaulson/7634248262/
photo by:Ksayer1
http://www.flickr.com/photos/ksayer/5614813544/
http://art18.photozou.jp/pub/235/634235/photo/67541817_624.jpg
http://ecx.images-amazon.com/images/I/51MgH8Jmr3L._SS400_.jpg
え?はやく本題にいけって??

  バン   はよ
バン ( `・ω・) バン はよ
   / ミつ / ̄ ̄ ̄/
  ̄ ̄\/___/
NSInvocationの
便利さとハマりどころ
今日のサンプルコード

http://workshop.iphonework.biz/files/2013/12/
NSInvocationSample.zip
アジェンダ
1. NSInvocationでの呼び出しを経験しよう!
2. クラスメソッドを呼んでみよう!
3. 引数を渡してみよう!
4. 返り値を取得してみよう!
5. 最後の難関?!(ココが本題)
まとめ
•

NSInvocationの使い方についてお話しました

•

使うシーンは限られているはず
•

•

アルゴリズムを見直した上、用法容量を守って

お使いください

リーダブルコード!!!
御清聴ありがとう
ございました
時間が余ったときの小ネタ

•

システム間で時刻をやりとりする必要があって
unixtimeにして受け渡ししていた

•

MySQL(サーバ)とObjective-C(iPhone)で同じ
unixtimeを時刻に変換すると異なる日時が出た
原因と対処
•

原因は文字列の時刻を intValue せずに floatValue
していたこと

•

NSDate#timeIntervalSince1970の引数が
NSTimeIntervalということでfloatにしていた

•

intValue で整数にして渡したらうまくいった!

Contenu connexe

Similaire à NSInvocationの便利さとハマりどころ

Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦Yoichiro Sakurai
 
Techcrunch hackathon 2013
Techcrunch hackathon 2013Techcrunch hackathon 2013
Techcrunch hackathon 2013Nao Tokui
 
Uiテスト@yidev
Uiテスト@yidevUiテスト@yidev
Uiテスト@yidevYusuke Kita
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたYasuharu Seki
 
Azure DevOps Community LT 文化醸成とツール支援
Azure DevOps Community LT 文化醸成とツール支援Azure DevOps Community LT 文化醸成とツール支援
Azure DevOps Community LT 文化醸成とツール支援JunichiMitsunaga
 
プログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたプログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたHirokiIwanaga
 
たのしいアノテーション
たのしいアノテーションたのしいアノテーション
たのしいアノテーションKazuhiro Sasao
 
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発Atsushi Kojima
 
How to develop a huge Single Page Application
How to develop a huge Single Page ApplicationHow to develop a huge Single Page Application
How to develop a huge Single Page ApplicationNaoki Yamada
 
プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3Yoh Nakamura
 
ドラムサークルとファシリテーション
ドラムサークルとファシリテーションドラムサークルとファシリテーション
ドラムサークルとファシリテーションEiichi Hayashi
 
今日から始めるC3.js
今日から始めるC3.js今日から始めるC3.js
今日から始めるC3.jsWataru Nakaseko
 
Experience Visionのはじめかた に見るDevLOVE勉強会のススメ
Experience Visionのはじめかた に見るDevLOVE勉強会のススメExperience Visionのはじめかた に見るDevLOVE勉強会のススメ
Experience Visionのはじめかた に見るDevLOVE勉強会のススメ陽一 滝川
 
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)Hiroyuki Ishikawa
 
Soft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイントSoft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイントShuichi Yukimoto
 
ネオスご紹介.pdf
ネオスご紹介.pdfネオスご紹介.pdf
ネオスご紹介.pdf2ca3
 
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatuYoh Nakamura
 
ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706拓 小林
 
The master plan of scaling a web application
The master plan ofscaling a web applicationThe master plan ofscaling a web application
The master plan of scaling a web applicationYusuke Wada
 

Similaire à NSInvocationの便利さとハマりどころ (20)

Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦Crashlyticsでクラッシュ撲滅作戦
Crashlyticsでクラッシュ撲滅作戦
 
Techcrunch hackathon 2013
Techcrunch hackathon 2013Techcrunch hackathon 2013
Techcrunch hackathon 2013
 
Uiテスト@yidev
Uiテスト@yidevUiテスト@yidev
Uiテスト@yidev
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみた
 
Azure DevOps Community LT 文化醸成とツール支援
Azure DevOps Community LT 文化醸成とツール支援Azure DevOps Community LT 文化醸成とツール支援
Azure DevOps Community LT 文化醸成とツール支援
 
プログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみたプログラミングのお勉強としてscratchをさわってみた
プログラミングのお勉強としてscratchをさわってみた
 
たのしいアノテーション
たのしいアノテーションたのしいアノテーション
たのしいアノテーション
 
ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発ガチリアルな修羅チーム開発
ガチリアルな修羅チーム開発
 
How to develop a huge Single Page Application
How to develop a huge Single Page ApplicationHow to develop a huge Single Page Application
How to develop a huge Single Page Application
 
プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3
 
ドラムサークルとファシリテーション
ドラムサークルとファシリテーションドラムサークルとファシリテーション
ドラムサークルとファシリテーション
 
今日から始めるC3.js
今日から始めるC3.js今日から始めるC3.js
今日から始めるC3.js
 
Experience Visionのはじめかた に見るDevLOVE勉強会のススメ
Experience Visionのはじめかた に見るDevLOVE勉強会のススメExperience Visionのはじめかた に見るDevLOVE勉強会のススメ
Experience Visionのはじめかた に見るDevLOVE勉強会のススメ
 
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
WPの実装言語PHPの重箱の隅っこを速度的な意味でつっついて比較してみた(2016/12/3)
 
Soft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイントSoft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイント
 
ネオスご紹介.pdf
ネオスご紹介.pdfネオスご紹介.pdf
ネオスご紹介.pdf
 
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
「開発現場に伝えたい10のこと」それぞれの後日談_yohhatu
 
ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706ゆとりエンジニア交流会_20130706
ゆとりエンジニア交流会_20130706
 
クソアプリ作った
クソアプリ作ったクソアプリ作った
クソアプリ作った
 
The master plan of scaling a web application
The master plan ofscaling a web applicationThe master plan ofscaling a web application
The master plan of scaling a web application
 

Plus de Yoichiro Sakurai

XcodeのTargetについてのTIPS
XcodeのTargetについてのTIPSXcodeのTargetについてのTIPS
XcodeのTargetについてのTIPSYoichiro Sakurai
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテストYoichiro Sakurai
 
Objective-C/Swift コードの共用
Objective-C/Swift コードの共用Objective-C/Swift コードの共用
Objective-C/Swift コードの共用Yoichiro Sakurai
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話Yoichiro Sakurai
 
開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 Reloaded開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 ReloadedYoichiro Sakurai
 
チームを加速させるRetty式開発術
チームを加速させるRetty式開発術チームを加速させるRetty式開発術
チームを加速させるRetty式開発術Yoichiro Sakurai
 
1人でも頑張れる!Retty式開発環境
1人でも頑張れる!Retty式開発環境1人でも頑張れる!Retty式開発環境
1人でも頑張れる!Retty式開発環境Yoichiro Sakurai
 
Google admobmediationで広告最適化
Google admobmediationで広告最適化Google admobmediationで広告最適化
Google admobmediationで広告最適化Yoichiro Sakurai
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストYoichiro Sakurai
 
20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshopYoichiro Sakurai
 
20120826i phonedeveloperworkshop
20120826i phonedeveloperworkshop20120826i phonedeveloperworkshop
20120826i phonedeveloperworkshopYoichiro Sakurai
 
20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshopYoichiro Sakurai
 
20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublished20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublishedYoichiro Sakurai
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshopYoichiro Sakurai
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublishedYoichiro Sakurai
 
20120219i phonedeveloperworkshoppublished
20120219i phonedeveloperworkshoppublished20120219i phonedeveloperworkshoppublished
20120219i phonedeveloperworkshoppublishedYoichiro Sakurai
 
20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublished20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublishedYoichiro Sakurai
 
20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublish20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublishYoichiro Sakurai
 

Plus de Yoichiro Sakurai (19)

XcodeのTargetについてのTIPS
XcodeのTargetについてのTIPSXcodeのTargetについてのTIPS
XcodeのTargetについてのTIPS
 
javascript を Xcode でテスト
javascript を Xcode でテストjavascript を Xcode でテスト
javascript を Xcode でテスト
 
Objective-C/Swift コードの共用
Objective-C/Swift コードの共用Objective-C/Swift コードの共用
Objective-C/Swift コードの共用
 
Xcode で gulp を使うお話
Xcode で gulp を使うお話Xcode で gulp を使うお話
Xcode で gulp を使うお話
 
開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 Reloaded開発を加速させるRetty式チーム開発術 Reloaded
開発を加速させるRetty式チーム開発術 Reloaded
 
チームを加速させるRetty式開発術
チームを加速させるRetty式開発術チームを加速させるRetty式開発術
チームを加速させるRetty式開発術
 
1人でも頑張れる!Retty式開発環境
1人でも頑張れる!Retty式開発環境1人でも頑張れる!Retty式開発環境
1人でも頑張れる!Retty式開発環境
 
Google admobmediationで広告最適化
Google admobmediationで広告最適化Google admobmediationで広告最適化
Google admobmediationで広告最適化
 
TestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテストTestFlight自動化でらくらくチームテスト
TestFlight自動化でらくらくチームテスト
 
20130216 workshop
20130216 workshop20130216 workshop
20130216 workshop
 
20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop20121028i phonedeveloperworkshop
20121028i phonedeveloperworkshop
 
20120826i phonedeveloperworkshop
20120826i phonedeveloperworkshop20120826i phonedeveloperworkshop
20120826i phonedeveloperworkshop
 
20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop
 
20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublished20120422i phonedeveloperworkshoppublished
20120422i phonedeveloperworkshoppublished
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
 
20120219i phonedeveloperworkshoppublished
20120219i phonedeveloperworkshoppublished20120219i phonedeveloperworkshoppublished
20120219i phonedeveloperworkshoppublished
 
20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublished20111030i phonedeveloperworkshoppublished
20111030i phonedeveloperworkshoppublished
 
20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublish20110424i phonedeveloperworkshoppublish
20110424i phonedeveloperworkshoppublish
 

Dernier

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 

Dernier (11)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

NSInvocationの便利さとハマりどころ