objective-c/swift コードの共用

8
Objective-C/Swift コードの共用 2014/10/03 Retty 株式会社 櫻井 洋一郎

Upload: yoichiro-sakurai

Post on 18-Jun-2015

561 views

Category:

Technology


0 download

DESCRIPTION

2014/10/03 のPixivでの勉強会の発表資料

TRANSCRIPT

Page 1: Objective-C/Swift コードの共用

Objective-C/Swiftコードの共用

2014/10/03 Retty 株式会社

!櫻井 洋一郎

Page 2: Objective-C/Swift コードの共用

自己紹介

• 櫻井 洋一郎(@saku2saku)

• iOSアプリ開発 兼 とんかつ担当

• Objective-C, PHP, Java, 等々

• 料理, 漫画, 等々

Page 3: Objective-C/Swift コードの共用

• クラス拡張について • 動的クラス生成について • メソッドについて • まとめ

今日の内容

https://github.com/saku/PixivLTSample/

Page 4: Objective-C/Swift コードの共用

クラスの拡張について

• Obj-C -> Swift • 拡張可能

• Swift -> Obj-C • 拡張できない

Cannot subclass a class with objc_subclassing_restricted attribute

Page 5: Objective-C/Swift コードの共用

動的なクラス生成について

• Obj-Cのクラスを生成 • 素直にNSClassFromString

• Swiftのクラスを生成 • NSClassFromStringでもダメぽ • [appName]-Swift.h を見る

_TtC[appNameLength][appName][classNameLength][className]

Page 6: Objective-C/Swift コードの共用

メソッドについて

• Obj-C -> Swift • グローバルメソッドも呼べる

• Swift -> Obj-C • グローバルメソッドは呼べない • 何かのクラスのExtensionは呼べる

Page 7: Objective-C/Swift コードの共用

• SwiftのクラスはObj-Cで拡張できない • ObjcでSwiftクラスを動的に生成する場合にはキモいクラス名が必要

• グローバルメソッドは一方通行 • Obj-C -> Swift 優遇されすぎ(́・ω・`)

まとめ

https://github.com/saku/PixivLTSample/

Page 8: Objective-C/Swift コードの共用

WE’RE HIRING Engineers!!