



class ViewController: UIViewController {
の下の行まで持っていきます。
ConnectionはOutlet, Name は myLabel として Connect をクリックしましょう。
@IBOutlet weak var myLabel: UILabel!という行が追加されました。その行の左には丸が表示されていますが、これをクリックすると 何のオブジェクトと結び付いているかわかります。

@IBOutlet weak var myLabel: UILabel!の下の行まで持っていきます。 ConnectionはAction, Name は tapButton として Connect をクリックしましょう。

@IBAction func tabButton(sender: AnyObject) {
}
という2行が追加されます。


iOS -> Cocoa Touch Class -> Next を選ぶとクラス名の入力になります。ここではクラス名は WithObjC、Subclass ofに UIView, LauguageにObjective-C を選択しました。 もしも表示に関係しないならばSubclass ofはNSObjectでもよいと思われます。


このあと「SwiftとObjective-Cをブリッジ(橋渡し)するHeaderを作るか」と確認を求められるので "Create Bridging Header" を選択します。 ブリッジングヘッダーファイルの名前は「プロジェクト名-Bridging-Header.h」となります。

WithObjC.h, WithObjC.m, SwiftObjC-Bridging-Header.h が新たに生成されました。

SwiftとObjective-Cをビルドする http://nw.tsuda.ac.jp/wiki/index.php?Swift/withObjectiveC にざっと目を通しておくことをお勧めします。
| SwiftObjC-Bridging-Header.hに追加するコード(赤字部分) |
#import "WithObjC.h" |

| WithObjC.hに追加するコード(赤字部分) |
#import |
| WithObjC.mに追加するコード(赤字部分) |
#import "WithObjC.h"
@implementation WithObjC
- (int) inc: (int) x {
return x + 1;
}
- (int) add: (int) x with: (int) y {
int z = x + y;
return z;
}
@end
|
| ViewController.swiftに追加するコード(赤字部分) |
import UIKit
class ViewController: UIViewController {
var objc: WithObjC!
var seed: Int32 = 0;
@IBOutlet weak var myLabel: UILabel!
@IBAction func tapButton(sender: AnyObject) {
seed += 1;
let a: Int32 = objc.inc(seed);
let b: Int32 = objc.add(seed, with: Int32(10));
myLabel.text = String(format:"%d %d",a,b);
}
override func viewDidLoad() {
super.viewDidLoad()
objc = WithObjC()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
|
