ギークなエンジニアを目指す男

基幹系SIerがWeb系とかネイティブ系の知識を蓄えようとするブログ

mBaasで会員情報を取得してみる

こんばんは。

GWに突入しました。

特に遠出する予定もなく、大学時代の仲間と飲んだり、ぶらーっと散歩したりしてます。

 

さて、今回も先日から開発している旅行者向けSNSの続きを。

 

前回までで、会員登録までは実装できたので、今回は登録した会員情報を

取得して画面に表示してみるところまでのお話。

前回の記事はこちらから↓

 

taxa-program.hatenablog.com

 

会員情報の取得方法はニフティクラウドの公式にちょこっと載っていました。

swiftだとこんな感じに書けます。

  1. // ログイン中のユーザーの取得

  2. let carrentUser = NCMBUser.currentUser()

 

 この結果をprintしてみるとこんな感じ

  1. {
  2.   "updateDate" : {
  3.     "__type" : "Date",
  4.     "iso" : "2016-05-01T08:12:52.573Z"
  5.   },
  6.   "sessionToken" : "UFHTAZ7lpr9rfejZv77CzclCP",
  7.   "authData" : null,
  8.   "userName" : "admin",
  9.   "mailAddress" : "objective.c.taxa@gmail.com",
  10.   "objectId" : "bx870CgkJ56mYaq9",
  11.   "acl" : {
  12.   },
  13.   "createDate" : {
  14.     "__type" : "Date",
  15.     "iso" : "2016-04-25T14:06:20.030Z"
  16.   },
  17.   "mailAddressConfirm" : true
  18. }

 

なんかJSONっぽくなっている気がする...

だたこの文字列を単純にパースするだけでは上手くいきませんでした。

 

手順としては、取得した文字列をStringに変換し、それをNSData型にEncodingします。

(これって一発で変換できるんでしょうか?詳しい方教えてください...)

 

んでもってそいつをJSONとしてパースしてやればいい。

下記は変換手順。

  1. let carrentUser = NCMBUser.currentUser()
  2. let carrentUserString: String = String(carrentUser)
  3. let carrentUserdata = carrentUserString.dataUsingEncoding(NSUTF8StringEncoding)

 

いざ、取得!

  1. Optional(objective.c.taxa@gmail.com)

 

おお、これは良い感じの予感...

画面に表示してみます。

f:id:taxa_program:20160506174117p:plain

 

なんでOptionalって出てくるんだ...

 

調べてみると、AppDelegateに共通変数を作成し、それにメールアドレスを格納していたですが、

これがOptional型で宣言されており、アンラップしなければいけないようです。

 

したら上手くいきました!

f:id:taxa_program:20160506175441p:plain

 

 これでユーザ情報を取りまくれます。

 

 

以上、今日はこの辺りで。