Objective-C の Category と Swift の Extension
既存のクラスを拡張したいときに、 Objective-C であれば Category 、 Swift であれば Extension により実装していきます。 それぞれの実装方法の例です。
Objective-C
NSDate を拡張して sampleMethod
というメソッドを実装したい場合、 Objective-C では以下のように記述します。
// NSDate+SampleProject.h #import <Foundation/Foundation.h> @interface NSDate (SampleProject) - (void)sampleMethod; @end
// NSDate+SampleProject.m @implementation - (void)sampleMethod { // hoge } @end
Swift
上記と同じメソッドを Swift の Extension で記述すると以下のようになります。
// NSDate+SampleProject.swift import Foundation extension NSDate { func sampleMethod() { // hoge } }
Objective-C から Swift の Extension を利用する
ちなみに、 Objective-C から Swift の Extension を利用したいときは、 Objective-C ファイルで #import "sampleProject-Swift.h"
を記述しておくだけで大丈夫です。