狠狠撸

狠狠撸Share a Scribd company logo
New Objective-C Features
for Swift 2.0
Goichi Hirakawa
About Me
? 平川 剛一 (Goichi Hirakawa)
? @gooichi
? OS X / iOSソフトウェアエンジニア(フリー)
? GyazSquare / GitHub
? Mailer、デバイス制御、MDM系など
? Objective-C歴XX年
New Objective-C Features
Objective-CとSwiftをより簡単で効率的に連携させ
るためのXcode 7からのObjective-Cの新機能:
? Generics
? Nullability (Xcode 6.3 )
? KindOf Types
? New Macros
Agenda
? Generics
? Nullability (Updated)
? KindOf Types
? New Macros
Agenda
? Generics
? Nullability (Updated)
? KindOf Types
? New Macros
What s Generics?
? 型に依存しない共通の処理やアルゴリズムを型パラメータ
(Type Parameter)を用いて定義し、汎用化する機能
? ジェネリックプログラミングの仕組み
? 言語により呼び名、機能は若干異なる
? テンプレート(C++)、ジェネリクス(Java、Swiftな
ど)、ジェネリック(MS系言語)、パラメータ化され
た型(Scala)等々
Objective-C Generics
? 他言語と比べ、Lightweight(軽量、簡易)
? APIの表現力を向上させる
? コレクションをより使いやすくする
? Swiftにより型情報がインポート
? より良い静的型チェックを可能にする
? Xcode 7(LLVM 7.0.0)以降
Before Using Generics
Objective-C
@interface UIView
@property (nonatomic, copy ,readonly) NSArray *subviews;
@end
Swift
class UIView {
var subviews: [AnyObject] { get }
}
After Using Generics
Objective-C
@interface UIView
@property (nonatomic,readonly,copy) NSArray<UIView *>*subviews;
@end
Swift
class UIView {
var subviews: [UIView] { get }
}
Static Type Checking
? 型に関する警告が表示される
? ただし、以下は警告は出ない→正しい(後方互換性参照)
Backward Compatibility
? 型消去(Type Erasure)モデルでバイナリ互換
? Objective-Cランタイムに変更なし
? コード生成に影響なし?
? 暗黙の変換によるソース互換性
NSArray<NSString *> *strings = ...; ?
NSArray *array = ...; ?
array = strings; // OK, 型引数が削除 ?
strings = array; // OK, 型引数が追加 ?
Generic Classes (iOS 9)
? NSArray、NSSetとNSDictionary
? これらの型情報はSwiftによりインポートされる
? それ以外のジェネリクス対応クラス
? NSCache、NSEnumerator、NSHashTable、
NSMapTable、NSOrderedSet、PHFetchResult、
および、これらのMutableクラスもジェネリクス対応
? これらの型情報はSwiftによりインポートされない
Variances
? 共変性(covariant)
? A←Bのとき、X<A>変数にX<B>実体を割り当て可能
? 反変性(contravariant)
? A←Bのとき、X<B>変数にX<A>実体を割り当て可能
? 不変性(invariant)
? X<A>変数にはX<A>以外の実体は割り当て不可
Objective-C Generics Variances
? 新しいキーワードの追加
? 共変性:X<__covariant ObjectType>
? NSArray、NSDictionary、NSOrderedSet、NSSet
? 反変性:X<__contravariant ObjectType>
? 現状該当クラスなし
? 不変性:何もつけない(デフォルト)
? 上記クラス以外すべて
Type Safety for Typed Collections
? NSArrayはcovariant(共変)
NSArray<UIView *> *views;
NSArray<UIResponder *> *responders = views; // OK
? NSMutableArrayはinvariant(不変)
UIViewController *viewController;
NSMutableArray<UIView *> *views;
NSMutableArray<UIResponder *> *responders = views; // NG
[responders addObject:viewController];
warning: Incompatible pointer types initializing
'NSMutableArray<UIResponder *> *' with an expression of
type 'NSMutableArray<UIView *> *'
Generics Notes
? Swift 2.1のリファレンスにはジェネリクスの変性に関する記述は
ないが、
? コレクションは値型なので共変性
? 2.1より関数型はパラメータ型に関して反変性
? 近い将来(いい加減な推測と希望)、
? 変性に関するキーワードが追加されるのでは?(Swift 3.0?)
? OrderedSet型が追加され、NSOrderedSetの型情報がSwiftに
よりインポートされるのでは?(Swift 2.5?)
Agenda
? Generics
? Nullability (Updated)
? KindOf Types
? New Macros
What s Nullability?
? NULL (nil / Nil) 値の許容を明確にする?
→ Swiftで不要なアンラップ処理を減らす
? 対象
? 関数/メソッドのパラメータや戻り値
? プロパティ
? 変数
New Type Annotations
型修飾子
Objective-C?
プロパティ/メソッド
Swiftでの扱い NULL許容
__nonnull
_Nonnull
nonnull 非オプショナル しない
__nullable
_Nullable
nullable オプショナル する
__null_unspecified?
_Null_unspecified
null_unspecified
暗黙的アンラップ?
オプショナル
不明
- null_resettable
暗黙的アンラップ?
オプショナル
Setter: する?
Getter: しない
Nullability Notes
? Objective-Cランタイムに影響なし
? コンパイル時に警告は出る
? 実行時にnilチェックなし
? 基本的にはSwiftへの移行のための表記改善
? まとめてnonnull指定する場合は以下のマクロを利用する?
NS_ASSUME_NONNULL_BEGIN?
NS_ASSUME_NONNULL_END
Agenda
? Generics
? Nullability (Updated)
? KindOf Types
? New Macros
KindOf Types
? 型付きコレクションを使わない場合(従来コード)
@interface UIView (UIViewHierarchy)
@property(nonatomic,readonly,copy) NSArray *subviews;
@end
[view.subviews[0] setTitle:@YES forState:UIControlStateNormal]; // OK
? 型付きコレクションを使う場合→エラー
@interface UIView (UIViewHierarchy)
@property(nonatomic,readonly,copy) NSArray<UIView *> *subviews;
@end
[view.subviews[0] setTitle:@YES forState:UIControlStateNormal]; // NG
error: No visible @interface for 'UIView' declares the selector
'setTitle:forState:'
KindOf Types
? 型付きコレクションは、型安全になり、Swiftからも利用しやす
くなるが、従来のコードでエラーとなるケースが発生
? 新しいキーワードの追加
? __kindof
? __kindof MyClass: MyClassまたはMyClassの派生クラス
@interface UIView (UIViewHierarchy)
@property(nonatomic,readonly,copy) NSArray<__kindof UIView *> *subviews;
@end
[view.subviews[0] setTitle:@YES forState:UIControlStateNormal]; // OK
Agenda
? Generics
? Nullability (Updated)
? KindOf Types
? New Macros
New Macros
? SwiftによるObjective-Cインポートの挙動を変更
1. NS_SWIFT_NAME(_name)
2. NS_SWIFT_UNAVAILABLE(_msg)
3. NS_REFINED_FOR_SWIFT
4. NS_SWIFT_NOTHROW
NS_SWIFT_NAME(_name)
? メソッド名、列挙型のケース、オプション設定値を変更可能
+ (instancetype)recordWithRPM:(NSUInteger)RPM ?
NS_SWIFT_NAME(init(RPM:));
+ (id)recordWithQuality:(double)quality ?
NS_SWIFT_NAME(record(quality:));
typedef NS_ENUM(NSInteger, ABCRecordSide) {
ABCRecordSideA,
ABCRecordSideB NS_SWIFT_NAME("FlipSide"),
};
NS_SWIFT_UNAVAILABLE(_msg)
? Swiftでは不適切/不要な宣言をインポートしない
+ (instancetype)collectionWithValues:(NSArray *)values ?
forKeys:(NSArray<NSCopying> *)keys ?
NS_SWIFT_UNAVAILABLE("Use a dictionary literal instead”);
NS_REFINED_FOR_SWIFT
? 元の実装を有効にしたまま(__methodName)、洗練されたSwiftのインターフェイスを拡張で提供
? Objective-Cのインターフェイス
@interface Color : NSObject
- (void)getRed:(nullable CGFloat *)red
green:(nullable CGFloat *)green
blue:(nullable CGFloat *)blue
alpha:(nullable CGFloat *)alpha NS_REFINED_FOR_SWIFT;
@end
? Swiftの拡張インターフェイス
extension Color {
var RGBA: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) {
var r: CGFloat = 0.0
var g: CGFloat = 0.0
var b: CGFloat = 0.0
var a: CGFloat = 0.0
__getRed(&r, green: &g, blue: &b, alpha: &a)
return (red: r, green: g, blue: b, alpha: a)
}
}
NS_SWIFT_NOTHROW
? スローさせずにNSErrorを生成するための宣言
? 現在はNSURLの以下のメソッドのみ
- (BOOL)checkResourceIsReachableAndReturnError: ?
(NSError **)error NS_SWIFT_NOTHROW ?
NS_AVAILABLE(10_6, 4_0);
- (BOOL)checkPromisedItemIsReachableAndReturnError: ?
(NSError **)error NS_SWIFT_NOTHROW ?
NS_AVAILABLE(10_10, 8_0);
? リファレンスには理由等は特に記述されていない
Conclusion
既存のObjective-Cコードを流用しながら、Swiftへの移行を徐々に進める
場合、以下の理由から、まずObjective-Cの新機能を導入した方がよりスムー
ズな移行が可能と考えられる:
? Objective-Cジェネリクスによる静的型チェックやSwiftへの型情報イン
ポートの追加
? NullabilityによるSwiftでの不要なアンラップ処理の削減
? KindOf型はObjective-Cジェネリクスとの組み合わせだけでなく、既存
コードのid型からの置き換えるによる型安全の向上(id型と比較して…)
? マクロによるSwiftらしいAPIへの変換

More Related Content

What's hot (16)

Mix and Match / Swift and Objective-C
Mix and Match / Swift and Objective-CMix and Match / Swift and Objective-C
Mix and Match / Swift and Objective-C
Goichi Hirakawa
?
10分て?わかるOpenAPI V3
10分て?わかるOpenAPI V310分て?わかるOpenAPI V3
10分て?わかるOpenAPI V3
Kazuchika Sekiya
?
补苍驳耻濒补谤1脳て?见る补苍驳耻濒补谤2
补苍驳耻濒补谤1脳て?见る补苍驳耻濒补谤2补苍驳耻濒补谤1脳て?见る补苍驳耻濒补谤2
补苍驳耻濒补谤1脳て?见る补苍驳耻濒补谤2
Moriyuki Arakawa
?
厂飞颈蹿迟入门
厂飞颈蹿迟入门厂飞颈蹿迟入门
厂飞颈蹿迟入门
聡 中川
?
TypeScript による今風の web アフ?リ開発
TypeScript による今風の web アフ?リ開発TypeScript による今風の web アフ?リ開発
TypeScript による今風の web アフ?リ開発
靖 陣内
?
2005 re-reverse engineering goal models from legacy code
2005 re-reverse engineering goal models from legacy code2005 re-reverse engineering goal models from legacy code
2005 re-reverse engineering goal models from legacy code
n-yuki
?
闯补惫补厂肠谤颈辫迟使いのための罢测辫别厂肠谤颈辫迟実践入门
闯补惫补厂肠谤颈辫迟使いのための罢测辫别厂肠谤颈辫迟実践入门闯补惫补厂肠谤颈辫迟使いのための罢测辫别厂肠谤颈辫迟実践入门
闯补惫补厂肠谤颈辫迟使いのための罢测辫别厂肠谤颈辫迟実践入门
Shumpei Shiraishi
?
箩蚕耻别谤测の先に行こう!最先端の奥别产开発トレンドを学ぶ
箩蚕耻别谤测の先に行こう!最先端の奥别产开発トレンドを学ぶ箩蚕耻别谤测の先に行こう!最先端の奥别产开発トレンドを学ぶ
箩蚕耻别谤测の先に行こう!最先端の奥别产开発トレンドを学ぶ
Shumpei Shiraishi
?
个人て?开発したアフ?リか?ヘ?スト新着に选は?れた话
个人て?开発したアフ?リか?ヘ?スト新着に选は?れた话个人て?开発したアフ?リか?ヘ?スト新着に选は?れた话
个人て?开発したアフ?リか?ヘ?スト新着に选は?れた话
Motoki Narita
?
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
Yuichi Adachi
?
狈耻濒濒补产颈濒颈迟测について
狈耻濒濒补产颈濒颈迟测について狈耻濒濒补产颈濒颈迟测について
狈耻濒濒补产颈濒颈迟测について
ishikawa akira
?
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
masakazusegawa
?
Android cleanarchitecture
Android cleanarchitectureAndroid cleanarchitecture
Android cleanarchitecture
Tomoaki Imai
?
React Native 入門
React Native 入門React Native 入門
React Native 入門
Seiichi Okumiya
?
厂飞颈蹿迟勉强会
厂飞颈蹿迟勉强会厂飞颈蹿迟勉强会
厂飞颈蹿迟勉强会
Nagamine Hiromasa
?
Editorlt
EditorltEditorlt
Editorlt
Masaki Suzuki
?
Mix and Match / Swift and Objective-C
Mix and Match / Swift and Objective-CMix and Match / Swift and Objective-C
Mix and Match / Swift and Objective-C
Goichi Hirakawa
?
补苍驳耻濒补谤1脳て?见る补苍驳耻濒补谤2
补苍驳耻濒补谤1脳て?见る补苍驳耻濒补谤2补苍驳耻濒补谤1脳て?见る补苍驳耻濒补谤2
补苍驳耻濒补谤1脳て?见る补苍驳耻濒补谤2
Moriyuki Arakawa
?
厂飞颈蹿迟入门
厂飞颈蹿迟入门厂飞颈蹿迟入门
厂飞颈蹿迟入门
聡 中川
?
TypeScript による今風の web アフ?リ開発
TypeScript による今風の web アフ?リ開発TypeScript による今風の web アフ?リ開発
TypeScript による今風の web アフ?リ開発
靖 陣内
?
2005 re-reverse engineering goal models from legacy code
2005 re-reverse engineering goal models from legacy code2005 re-reverse engineering goal models from legacy code
2005 re-reverse engineering goal models from legacy code
n-yuki
?
闯补惫补厂肠谤颈辫迟使いのための罢测辫别厂肠谤颈辫迟実践入门
闯补惫补厂肠谤颈辫迟使いのための罢测辫别厂肠谤颈辫迟実践入门闯补惫补厂肠谤颈辫迟使いのための罢测辫别厂肠谤颈辫迟実践入门
闯补惫补厂肠谤颈辫迟使いのための罢测辫别厂肠谤颈辫迟実践入门
Shumpei Shiraishi
?
箩蚕耻别谤测の先に行こう!最先端の奥别产开発トレンドを学ぶ
箩蚕耻别谤测の先に行こう!最先端の奥别产开発トレンドを学ぶ箩蚕耻别谤测の先に行こう!最先端の奥别产开発トレンドを学ぶ
箩蚕耻别谤测の先に行こう!最先端の奥别产开発トレンドを学ぶ
Shumpei Shiraishi
?
个人て?开発したアフ?リか?ヘ?スト新着に选は?れた话
个人て?开発したアフ?リか?ヘ?スト新着に选は?れた话个人て?开発したアフ?リか?ヘ?スト新着に选は?れた话
个人て?开発したアフ?リか?ヘ?スト新着に选は?れた话
Motoki Narita
?
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
Yuichi Adachi
?
狈耻濒濒补产颈濒颈迟测について
狈耻濒濒补产颈濒颈迟测について狈耻濒濒补产颈濒颈迟测について
狈耻濒濒补产颈濒颈迟测について
ishikawa akira
?
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
Webアプリ開発のトレンドとUIライブラリ開発事情(仙台Geek★Night #1)
masakazusegawa
?
Android cleanarchitecture
Android cleanarchitectureAndroid cleanarchitecture
Android cleanarchitecture
Tomoaki Imai
?

Viewers also liked (20)

闯补惫补辞苍别报告会
闯补惫补辞苍别报告会闯补惫补辞苍别报告会
闯补惫补辞苍别报告会
Munenori Hirakawa
?
サービスを成长させる為の开発について
サービスを成长させる為の开発についてサービスを成长させる為の开発について
サービスを成长させる為の开発について
tatsuya mazaki
?
贬补诲辞辞辫の绍介
贬补诲辞辞辫の绍介贬补诲辞辞辫の绍介
贬补诲辞辞辫の绍介
bigt23
?
いままで使ってきた携帯电话
いままで使ってきた携帯电话いままで使ってきた携帯电话
いままで使ってきた携帯电话
Ippei Ogiwara
?
20131209_buildinsidermeetup
20131209_buildinsidermeetup20131209_buildinsidermeetup
20131209_buildinsidermeetup
kumake
?
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
Nobutaka Takushima
?
2014.11.12 ibm bluemix pdf
2014.11.12 ibm bluemix pdf2014.11.12 ibm bluemix pdf
2014.11.12 ibm bluemix pdf
Yuichiro Maki
?
颁辞肠辞蝉2诲-虫の深层?颁辞肠辞蝉2诲-虫组み込みによるピュア础苍诲谤辞颈诲/颈翱厂アプリの外科手术的统合
颁辞肠辞蝉2诲-虫の深层?颁辞肠辞蝉2诲-虫组み込みによるピュア础苍诲谤辞颈诲/颈翱厂アプリの外科手术的统合颁辞肠辞蝉2诲-虫の深层?颁辞肠辞蝉2诲-虫组み込みによるピュア础苍诲谤辞颈诲/颈翱厂アプリの外科手术的统合
颁辞肠辞蝉2诲-虫の深层?颁辞肠辞蝉2诲-虫组み込みによるピュア础苍诲谤辞颈诲/颈翱厂アプリの外科手术的统合
Ryuichi Kubuki
?
【登坛资料】人类総インターネット时代に20代を无駄にしないために
【登坛资料】人类総インターネット时代に20代を无駄にしないために【登坛资料】人类総インターネット时代に20代を无駄にしないために
【登坛资料】人类総インターネット时代に20代を无駄にしないために
Junichi Akagawa
?
Cross2013_DeNA
Cross2013_DeNACross2013_DeNA
Cross2013_DeNA
Takeshi Kaise
?
Plannahフ?ロシ?ェクトの開発環境とdeploy gateの紹介
Plannahフ?ロシ?ェクトの開発環境とdeploy gateの紹介Plannahフ?ロシ?ェクトの開発環境とdeploy gateの紹介
Plannahフ?ロシ?ェクトの開発環境とdeploy gateの紹介
Kenji Kinukawa
?
翱产箩别肠迟颈惫别-颁ひとめぐり
翱产箩别肠迟颈惫别-颁ひとめぐり翱产箩别肠迟颈惫别-颁ひとめぐり
翱产箩别肠迟颈惫别-颁ひとめぐり
Kenji Kinukawa
?
笔贬笔における滨/翱多重化と测颈别濒诲
笔贬笔における滨/翱多重化と测颈别濒诲笔贬笔における滨/翱多重化と测颈别濒诲
笔贬笔における滨/翱多重化と测颈别濒诲
驰补丑辞辞!デベロッパーネットワーク
?
厂飞颈蹿迟入门おさらい
厂飞颈蹿迟入门おさらい厂飞颈蹿迟入门おさらい
厂飞颈蹿迟入门おさらい
GMO TECH 株式会社
?
土下座パラダイスはこうして生まれた
土下座パラダイスはこうして生まれた土下座パラダイスはこうして生まれた
土下座パラダイスはこうして生まれた
Takafumi Naito
?
革新的ブラウザゲームを支えるプラットフォーム技术
革新的ブラウザゲームを支えるプラットフォーム技术革新的ブラウザゲームを支えるプラットフォーム技术
革新的ブラウザゲームを支えるプラットフォーム技术
Toru Yamaguchi
?
クックパッドでの痴笔颁移行について
クックパッドでの痴笔颁移行についてクックパッドでの痴笔颁移行について
クックパッドでの痴笔颁移行について
Sugawara Genki
?
Aerospike deep dive migration
Aerospike deep dive migration Aerospike deep dive migration
Aerospike deep dive migration
Makoto Uehara
?
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
Hub DotnetDeveloper
?
サービスを成长させる為の开発について
サービスを成长させる為の开発についてサービスを成长させる為の开発について
サービスを成长させる為の开発について
tatsuya mazaki
?
贬补诲辞辞辫の绍介
贬补诲辞辞辫の绍介贬补诲辞辞辫の绍介
贬补诲辞辞辫の绍介
bigt23
?
いままで使ってきた携帯电话
いままで使ってきた携帯电话いままで使ってきた携帯电话
いままで使ってきた携帯电话
Ippei Ogiwara
?
20131209_buildinsidermeetup
20131209_buildinsidermeetup20131209_buildinsidermeetup
20131209_buildinsidermeetup
kumake
?
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
CEDEC 2013 - 徹底的にチューンしたハイブリッドアプリ「D.O.T. Defender of Texel」の制作
Nobutaka Takushima
?
2014.11.12 ibm bluemix pdf
2014.11.12 ibm bluemix pdf2014.11.12 ibm bluemix pdf
2014.11.12 ibm bluemix pdf
Yuichiro Maki
?
颁辞肠辞蝉2诲-虫の深层?颁辞肠辞蝉2诲-虫组み込みによるピュア础苍诲谤辞颈诲/颈翱厂アプリの外科手术的统合
颁辞肠辞蝉2诲-虫の深层?颁辞肠辞蝉2诲-虫组み込みによるピュア础苍诲谤辞颈诲/颈翱厂アプリの外科手术的统合颁辞肠辞蝉2诲-虫の深层?颁辞肠辞蝉2诲-虫组み込みによるピュア础苍诲谤辞颈诲/颈翱厂アプリの外科手术的统合
颁辞肠辞蝉2诲-虫の深层?颁辞肠辞蝉2诲-虫组み込みによるピュア础苍诲谤辞颈诲/颈翱厂アプリの外科手术的统合
Ryuichi Kubuki
?
【登坛资料】人类総インターネット时代に20代を无駄にしないために
【登坛资料】人类総インターネット时代に20代を无駄にしないために【登坛资料】人类総インターネット时代に20代を无駄にしないために
【登坛资料】人类総インターネット时代に20代を无駄にしないために
Junichi Akagawa
?
Plannahフ?ロシ?ェクトの開発環境とdeploy gateの紹介
Plannahフ?ロシ?ェクトの開発環境とdeploy gateの紹介Plannahフ?ロシ?ェクトの開発環境とdeploy gateの紹介
Plannahフ?ロシ?ェクトの開発環境とdeploy gateの紹介
Kenji Kinukawa
?
翱产箩别肠迟颈惫别-颁ひとめぐり
翱产箩别肠迟颈惫别-颁ひとめぐり翱产箩别肠迟颈惫别-颁ひとめぐり
翱产箩别肠迟颈惫别-颁ひとめぐり
Kenji Kinukawa
?
土下座パラダイスはこうして生まれた
土下座パラダイスはこうして生まれた土下座パラダイスはこうして生まれた
土下座パラダイスはこうして生まれた
Takafumi Naito
?
革新的ブラウザゲームを支えるプラットフォーム技术
革新的ブラウザゲームを支えるプラットフォーム技术革新的ブラウザゲームを支えるプラットフォーム技术
革新的ブラウザゲームを支えるプラットフォーム技术
Toru Yamaguchi
?
クックパッドでの痴笔颁移行について
クックパッドでの痴笔颁移行についてクックパッドでの痴笔颁移行について
クックパッドでの痴笔颁移行について
Sugawara Genki
?
Aerospike deep dive migration
Aerospike deep dive migration Aerospike deep dive migration
Aerospike deep dive migration
Makoto Uehara
?
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
Hub DotnetDeveloper
?

Similar to New Objective-C Features for Swift 2.0 (20)

設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
Tomoharu ASAMI
?
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
?
ガイオプライベートセミナー2012秋(坂本)
ガイオプライベートセミナー2012秋(坂本)ガイオプライベートセミナー2012秋(坂本)
ガイオプライベートセミナー2012秋(坂本)
Kazunori Sakamoto
?
颈翱厂や础苍诲谤辞颈诲アフ?リ开発の骋辞辞诲笔谤补肠迟颈肠别
颈翱厂や础苍诲谤辞颈诲アフ?リ开発の骋辞辞诲笔谤补肠迟颈肠别颈翱厂や础苍诲谤辞颈诲アフ?リ开発の骋辞辞诲笔谤补肠迟颈肠别
颈翱厂や础苍诲谤辞颈诲アフ?リ开発の骋辞辞诲笔谤补肠迟颈肠别
Ken Morishita
?
C# 8
C# 8C# 8
C# 8
m ishizaki
?
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
?
090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa
Tomoki Maeda
?
大规模な闯补惫补厂肠谤颈辫迟开発の话
大规模な闯补惫补厂肠谤颈辫迟开発の话大规模な闯补惫补厂肠谤颈辫迟开発の话
大规模な闯补惫补厂肠谤颈辫迟开発の话
terurou
?
Java で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていくJava で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていく
Kenichi Tatsuhama
?
齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
Yoichiro Sakurai
?
厂飞颈蹿迟による関数型フ?ロク?ラミンク?超入门
厂飞颈蹿迟による関数型フ?ロク?ラミンク?超入门厂飞颈蹿迟による関数型フ?ロク?ラミンク?超入门
厂飞颈蹿迟による関数型フ?ロク?ラミンク?超入门
Hisakuni Fujimoto
?
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Itaru Kitagawa
?
惭痴颁もやもや话
惭痴颁もやもや话惭痴颁もやもや话
惭痴颁もやもや话
Tetsuya Kaneuchi
?
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
Yusuke Suzuki
?
翱产箩别肠迟颈惫别-颁フ?ロク?ラマのための蝉飞颈蹿迟导入法
翱产箩别肠迟颈惫别-颁フ?ロク?ラマのための蝉飞颈蹿迟导入法翱产箩别肠迟颈惫别-颁フ?ロク?ラマのための蝉飞颈蹿迟导入法
翱产箩别肠迟颈惫别-颁フ?ロク?ラマのための蝉飞颈蹿迟导入法
Tomoki Hasegawa
?
Visual Studio 2019 Updates Pickup!
Visual Studio 2019 Updates Pickup!Visual Studio 2019 Updates Pickup!
Visual Studio 2019 Updates Pickup!
Hiroyuki Mori
?
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
?
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
Yoichiro Sakurai
?
2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...
n-yuki
?
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
?
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
設計/コンポーネント設計(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第21回】
Tomoharu ASAMI
?
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Akira Inoue
?
ガイオプライベートセミナー2012秋(坂本)
ガイオプライベートセミナー2012秋(坂本)ガイオプライベートセミナー2012秋(坂本)
ガイオプライベートセミナー2012秋(坂本)
Kazunori Sakamoto
?
颈翱厂や础苍诲谤辞颈诲アフ?リ开発の骋辞辞诲笔谤补肠迟颈肠别
颈翱厂や础苍诲谤辞颈诲アフ?リ开発の骋辞辞诲笔谤补肠迟颈肠别颈翱厂や础苍诲谤辞颈诲アフ?リ开発の骋辞辞诲笔谤补肠迟颈肠别
颈翱厂や础苍诲谤辞颈诲アフ?リ开発の骋辞辞诲笔谤补肠迟颈肠别
Ken Morishita
?
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
?
090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa
Tomoki Maeda
?
大规模な闯补惫补厂肠谤颈辫迟开発の话
大规模な闯补惫补厂肠谤颈辫迟开発の话大规模な闯补惫补厂肠谤颈辫迟开発の话
大规模な闯补惫补厂肠谤颈辫迟开発の话
terurou
?
Java で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていくJava で書かれた Android アプリに Kotlin を適用させていく
Java で書かれた Android アプリに Kotlin を適用させていく
Kenichi Tatsuhama
?
齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
齿肠辞诲别の罢补谤驳别迟についての罢滨笔厂
Yoichiro Sakurai
?
厂飞颈蹿迟による関数型フ?ロク?ラミンク?超入门
厂飞颈蹿迟による関数型フ?ロク?ラミンク?超入门厂飞颈蹿迟による関数型フ?ロク?ラミンク?超入门
厂飞颈蹿迟による関数型フ?ロク?ラミンク?超入门
Hisakuni Fujimoto
?
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
Itaru Kitagawa
?
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
Yusuke Suzuki
?
翱产箩别肠迟颈惫别-颁フ?ロク?ラマのための蝉飞颈蹿迟导入法
翱产箩别肠迟颈惫别-颁フ?ロク?ラマのための蝉飞颈蹿迟导入法翱产箩别肠迟颈惫别-颁フ?ロク?ラマのための蝉飞颈蹿迟导入法
翱产箩别肠迟颈惫别-颁フ?ロク?ラマのための蝉飞颈蹿迟导入法
Tomoki Hasegawa
?
Visual Studio 2019 Updates Pickup!
Visual Studio 2019 Updates Pickup!Visual Studio 2019 Updates Pickup!
Visual Studio 2019 Updates Pickup!
Hiroyuki Mori
?
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
?
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
翱产箩别肠迟颈惫别-颁/厂飞颈蹿迟 コードの共用
Yoichiro Sakurai
?
2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...
n-yuki
?
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
?

More from Goichi Hirakawa (6)

Strings and characters in swift
Strings and characters in swiftStrings and characters in swift
Strings and characters in swift
Goichi Hirakawa
?
WebKit Overview
WebKit OverviewWebKit Overview
WebKit Overview
Goichi Hirakawa
?
Server-side Swift
Server-side SwiftServer-side Swift
Server-side Swift
Goichi Hirakawa
?
Swift Type System
Swift Type SystemSwift Type System
Swift Type System
Goichi Hirakawa
?
Swift API Design Guidelines (dec 3, 2015)
Swift API Design Guidelines (dec 3, 2015)Swift API Design Guidelines (dec 3, 2015)
Swift API Design Guidelines (dec 3, 2015)
Goichi Hirakawa
?
Strings and Characters in Swift
Strings and Characters in SwiftStrings and Characters in Swift
Strings and Characters in Swift
Goichi Hirakawa
?

New Objective-C Features for Swift 2.0