LoginSignup
0
0

More than 1 year has passed since last update.

Xcode13 × SwiftUIにおけるNCMB SDKの初期化処理

Posted at

Xcode13(iOS 15)になって、SwiftUI周りの挙動が変わっています。特に変わったのがアプリの初期化のタイミングで、WindowGroupのonChangeが呼ばれるのが遅くなってしまいました。

元々NCMBの初期化をWindowGroupのonChangeにて行っていたのですが、これだとアプリ起動時に認証やデータ取得を行っていると、初期化前に実行されるようになってしまいます。

そこで初期化のタイミングをinitに移すのをお勧めします。

NCMB Swift SDKのインストール

Xcode13になって、SDKのインストール法も変わっています。

Xcodeにて次の操作を行います。

プロジェクト選択 → PROJECTでプロジェクトを選択 → Package Dependencies で + を押す

ScreenShot__2021-12-03_15_01_29.jpg

これで依存パッケージをインストールするダイアログが出るので https://github.com/NIFCLOUD-mbaas/ncmb_swift.git を入力してインストールします。

ScreenShot_ 2021-12-03 15.01.36.png

SDKのインポート

(アプリ名)App.swiftファイルにてSDKをインポートします。

import NCMB

初期化する

Appではinitが初期化のタイミングで呼ばれるので、ここでNCMBの初期化処理を行います。関数名は init です。

@main
struct NCMBDemoApp: App {
    init() {
        // APIキーの設定とSDK初期化
        NCMB.initialize(applicationKey: "YOUR_APPLICATION_KEY", clientKey: "YOUR_CLIENT_KEY")
    }
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

まとめ

NCMBが初期化されていない状態で実行すると emptyApplicationKey というエラーメッセージが出ますので注意してください。もし、そのエラーメッセージが出た場合には、初期化タイミングの問題かも知れませんので、この記事を参考に修正してみてください。

イントロダクション (Swift) : クイックスタート(Swift UI App版) | ニフクラ mobile backend

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0