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にしていた

•

i...
NSInvocationの便利さとハマりどころ
Upcoming SlideShare
Loading in …5
×

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

3,196 views

Published on

2013/12/21 の yidev 資料

Published in: Technology
  • Be the first to comment

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

  1. 1. NSInvocationの 便利さとハマりどころ 2013/12/21 Retty株式会社 櫻井 洋一郎(@saku2saku)
  2. 2. 自己紹介 • 名前:櫻井 洋一郎 (@saku2saku) • お仕事:Retty株式会社
     iPhoneアプリ、とんかつ担当 • 言語:Obj-C, PHP, Java, etc… • 趣味:漫画・プログラミング 2
  3. 3. 今までの製作 for iPhone for iPad for Web 注:コミッタではなく、
   利用したシステム制作の経験です 3
  4. 4. NSInvocationって? • メソッドをシグニチャからコールする仕組み
  5. 5. リフレクション? photo by:Matthew Paulson http://www.flickr.com/photos/matthewpaulson/7634248262/
  6. 6. photo by:Ksayer1 http://www.flickr.com/photos/ksayer/5614813544/
  7. 7. http://art18.photozou.jp/pub/235/634235/photo/67541817_624.jpg
  8. 8. http://ecx.images-amazon.com/images/I/51MgH8Jmr3L._SS400_.jpg
  9. 9. え?はやく本題にいけって??   バン   はよ バン ( `・ω・) バン はよ    / ミつ / ̄ ̄ ̄/   ̄ ̄\/___/
  10. 10. NSInvocationの 便利さとハマりどころ
  11. 11. 今日のサンプルコード http://workshop.iphonework.biz/files/2013/12/ NSInvocationSample.zip
  12. 12. アジェンダ 1. NSInvocationでの呼び出しを経験しよう! 2. クラスメソッドを呼んでみよう! 3. 引数を渡してみよう! 4. 返り値を取得してみよう! 5. 最後の難関?!(ココが本題)
  13. 13. まとめ • NSInvocationの使い方についてお話しました • 使うシーンは限られているはず • • アルゴリズムを見直した上、用法容量を守って
 お使いください リーダブルコード!!!
  14. 14. 御清聴ありがとう ございました
  15. 15. 時間が余ったときの小ネタ • システム間で時刻をやりとりする必要があって unixtimeにして受け渡ししていた • MySQL(サーバ)とObjective-C(iPhone)で同じ unixtimeを時刻に変換すると異なる日時が出た
  16. 16. 原因と対処 • 原因は文字列の時刻を intValue せずに floatValue していたこと • NSDate#timeIntervalSince1970の引数が NSTimeIntervalということでfloatにしていた • intValue で整数にして渡したらうまくいった!

×