SwiftでのObjective-Cコードの使用

はい。あなたはできる。

UnsplashのNikhilMitraによる写真

Objective-Cには大規模なレガシーコードベースがあります。つまり、この言語は(少なくとも)しばらくの間は広く普及するでしょう。これは、Objective-CコードをSwiftプロジェクトに統合する必要があることを意味する場合があります。この記事は、そのために作成されました。

難易度:初心者| 簡単 | 通常| 挑戦

前提条件:

  • 基本的なiOSシングルビューアプリケーションを作成できる(ガイドはこちら)

ブリッジング:SwiftコードベースでObjective-Cコードを使用できるようにするためのヘッダーファイルの使用

Objective-C:オブジェクト指向言語

簡単なプロジェクトでのデモンストレーション

ボタンを中央に配置してシングルビュープロジェクトを作成する

このガイドでは、読者が簡単なプロジェクトを作成できることを前提としています。ビューの中央にラベルを作成する代わりに、そこにボタンを配置して、ビューコントローラーにアクションを追加します。

ただし、青以外の色で画像を表示するには、ボタンの種類をカスタムに変更し、テキストの色を表示される色に変更する必要があります。アウトレットが設定されています。この場合、アウトレットをmyButtonと呼びます(すべて以下のアニメーションGIFで示されています)。

プロジェクトに簡単な画像を追加する

アイテムをプロジェクトにドラッグアンドドロップすることで、リソースを追加できます。ボタンの背景として使用するには、JPEG画像をプロジェクトにドラッグアンドドロップする必要があります

TapGestureを追加する

はい:ボタンにアクションを持たせる方法は他にもありますが、この場合、ボタンの使用を検出できるUITapGestureRecognizerを使用します。

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(buttonTapped))
myButton.addGestureRecognizer(tapGesture)

@objc func buttonTapped() {
  MyObjcClass().printit("Print ME")
}

Objective-Cクラスを追加する

Cocoa Touchクラスを追加し、言語をObjective-Cにするように指定できます。

このプロセスは、以下のようにアニメーションGIFで示され、ブリッジヘッダーを追加することを忘れないでください。

ブリッジヘッダーにクラスを追加します

クラスをに追加する必要がありobjcswift-Bridging-Header.h、次の行が追加されます。

#import “MyObjcClass.h”

トリッキーすぎない!

Objective-Cコードへのクラスの追加

次に、次の署名をインターフェイス(MyObjcClass.h)に追加する必要があります。

- (void) printit:(NSString *)message;

- (void) printit:(NSString *)message {
NSLog(@"%@", message);
}

結果

アプリケーションを実行するとき、ボタンをクリックすると、コンソールに出力されます!!! うわー!

結論:

Objective-C素晴らしい言語です。その言語でプロジェクトを作成することを選択しないかもしれませんが、その(テスト済みの)コードのすべてを書き直さないためにSwiftにブリッジする必要があるかもしれません。2つの言語間のブリッジングが簡単であることは理にかなっています。このガイドは、まさにそれを実行できるようにするのに役立ちます。

あなたの知識を拡張する

  • AppleはスウィフトへのObjective-Cのインポートについてのガイド持っHEREを

質問は?ここで私と連絡を取ることができます

提案された投稿

ドメイン名に関する情報の検索

Brian P. Hogan 著『Small, Sharp Software Tools』からの抜粋

ドメイン名に関する情報の検索

facebook.com にリクエストを送信すると、コンピュータはドメイン名を検索してそのドメイン名を IP アドレスに変換し、コンピュータが接続できるようにします。

UI デザインにおける D ワードと L ワード。言語は重要です。人種差別をしないでください。

UI デザインにおける D ワードと L ワード。言語は重要です。人種差別をしないでください。

私たちの言語は、私たちの思考、態度、行動を形作る強力なツールです。一見無害に見える用語であっても、有害な偏見や固定観念を永続させる可能性があります。

関連記事

代名詞は超怖い

頻繁に起こることだが、突然、私は衝撃を受ける 再びミッドウェイだ <いいえ、太平洋にあるものではなく、カーニバルにあるものです> どの見出しも大音量で…..

パスワードはもう不要 — パスキーがパスワードをどのように置き換えるか

パスワードはもう不要 — パスキーがパスワードをどのように置き換えるか

曖昧さを避けるために、次の用語が使用されます。認証者; ログイン Web サイトの作成に使用されている携帯電話。ユーザーがログイン要求サービスを行うために使用している Web サイトまたはアプリケーション。特定のサービスを提供するベンダー。例:

ライティングスキルを向上させる実証済みの 3 つの方法

書くことの利点とそれを助けるための戦略

ライティングスキルを向上させる実証済みの 3 つの方法

2022 年には GPT-3 がリリースされるため、ライティング スキルの重要性は低くなるようです。AI を使えば、文章が苦手な人でも質の高い人材を生み出すことができます。

24 年度に炭素除去に資金を提供

経路全体にわたる Carbon180 の割り当てリクエストの内訳

24 年度に炭素除去に資金を提供

アリソン・リー著、マネージング政府問題顧問 連邦政府の年次歳出プロセスは、二酸化炭素除去 (CDR) に資金を提供する取り組みの中心です。毎年、Carbon180 は、来年の資金がどこに流れるかの指針となるよう、さまざまな議会事務所に要望書を提出しています。