0
0

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.

Swift SDKで位置情報データを保存する方法

Posted at

ニフクラ mobile backendでは各種言語向けにSDKを提供しています。その中で最も新しいSwift SDKについて、その使い方を紹介します。

今回はデータストアに位置情報データを保存する方法を解説します。

実際のコード

実際のコードは次のようになります。データストアのHelloクラスに対して、geoというフィールドで位置情報を保存しています。

let obj = NCMBObject(className: "Hello") // Helloというクラス名
// 位置情報の定義
var geo: Dictionary<String, Any> = [:]
geo["__type"] = "GeoPoint"
geo["latitude"] = 35.6585805
geo["longitude"] = 139.7454329

obj["geo"] = geo  // ← 位置情報をセット
obj.saveInBackground(callback: { result in
    switch result {
    case .success:
        print(obj.objectId! as String)
    case let .failure(error):
        print(error)
    }
})

データストアで扱える型について

データストアでは次のようなデータ型を扱えます。

  • 文字列
  • 数値
  • 真偽値
  • 日付
  • オブジェクト(配列含む)
  • 位置情報

位置情報の型について

位置情報は現時点(1.2.0)のSwift SDKでは専用クラスを提供していません。そのため、Dictionary型を用いています。データは次の3つのプロパティがあります。

名称 意味
__type 文字列 GeoPoint固定
latitude 数値 緯度
longitude 数値 経度

__type を GeoPoint とすることで、データが位置情報型であることを定義しています。ほかに日付、ポインター、リレーション型の場合に __type を利用します(日付型は暗黙的にDate型と相互変換されるので気にする必要はありません)。

まとめ

将来的に位置情報クラスが追加されるはずですが、今の時点で位置情報をデータストアに保存したい場合には、今回の方法を利用してください。

mBaaSでサーバー開発不要! | ニフクラ 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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?