Upload
toyship
View
678
Download
0
Embed Size (px)
Citation preview
自己紹介
• @TachibanaKaoru
• VOYAGE GROUP で働く iOS エンジニアです。
• Blog : http://www.toyship.org/
ホストアプリに、共通ヘッダーをよみこめば、すぐ使える。
#import "ViewController.h"
// Embedded Frameworkの共通ヘッダー #import "weather.h"
@implementation ViewController
- (void)viewDidLoad { [super viewDidLoad]; // Embedded Frameworkのクラス [[WTInformation sharedInstance] test]; }
こんな感じ// for dlopen/dlclose #import <dlfcn.h>
@implementation ViewController
- (void)viewDidLoad { [super viewDidLoad]; // Frameworkをロードする void *newframework = dlopen("./weather.framework/weather", RTLD_LAZY); // WTInformationクラスを作成 id loadedClass = [[NSClassFromString (@"WTInformation") alloc] init]; // メッセージを送る [loadedClass performSelector:@selector(logtoday:) withObject:nil withObject:nil]; }
ライブラリ側にCATクラスを作ってみる
import Foundation
public class Cat{ public init(){
} public func meow(count: Int) -> String { println(" meow! \(count)") return "meow (otheranimals version)" }
}
ライブラリをIMPORTすると、ホストアプリからライブラリのアプリが
使えるようになりますimport otheranimals
class ViewController: UIViewController {
override func viewDidLoad() { super.viewDidLoad()
var cat1 : Cat = Cat() cat1.meow(3) }
さきほど、ライブラリ側にCATクラスを作成しましたが、アプリ側にもCAT
クラスを作成してみます。import Foundation
class Cat{ init(){ } func meow(count: Int) -> String { println(" にゃあ! \(count)") return "meow (otheranimals version)" } }
ホストアプリからよんでみるimport otheranimals
class ViewController: UIViewController {
override func viewDidLoad() { super.viewDidLoad() // App Version var cat1 : Cat = Cat() //ホストアプリのCatがよばれる cat1.meow(3) // Lib Version var cat2 : otheranimals.Cat = otheranimals.Cat() // ライブラリのCatがよばれる cat2.meow(5) } }
おまけ• Blogにもう少し詳しく書いてあるので、そちらもどうぞ。
• http://www.toyship.org/archives/2096
• http://www.toyship.org/archives/2111
• http://www.toyship.org/archives/2099