0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

NCMBのSwift SDKを使っていて、SwiftUI上で文字の取得ができないのを解決する

Last updated at Posted at 2021-08-07

NCMB(ニフクラ mobile backend)のSwift SDKを使えば、SwiftUIアプリなどでの開発がとても楽に行えるようになります。

しかし、データストア(データベース)のオブジェクトを使っている時に、直接データを指定すると表示できないという問題に遭遇しました。

現象

たとえば次のようにしてテキストを表示しようとしました。データストアでは文字列以外の情報も扱えたり、キー内のデータが nil であることもあるので ?? を使って代替の文字列を用意しています。

Text(thread["title"] ?? "")

これを実行すると、テキストが表示されません。

ScreenShot_ 2021-08-07 11.31.09.png

解決策

解決策としては as String を付けることでした。

Text((thread["title"] ?? "") as String)

このようにすると、テキストが表示されるようになります。

ScreenShot_ 2021-08-07 11.31.37.png

注意点

ObservableObjectとして定義した際にはこのような状況になった覚えがないので、ViewのStateとしてデータストアを定義した時に起こる可能性があります。Xcodeは12.5.1、Swift 5.4.2で発生しています。なお、Viewの中でfunを定義して、そこから返す場合には問題ありませんでした。

まとめ

テキスト(に限らないと思いますが)がうまく出ないときには、この方法を使ってみてください。

mBaaSでサーバー開発不要! | ニフクラ mobile backend

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?