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() } } |