UnityでNCMBのデータストアからcreateDateを取得する方法 [Unity開発]
こんにちは。
大学で卒業制作を指導していて、留学生君が製作中の案件で上手く行かない相談に来ました。簡単だろうと思って、ささっと済まそうとすると、アレレ?なぜだろう。やはり上手く行かない。持ち帰って調べて解決しました。
まず案件は、NiftyCloudMobileBackend(ニフティクラウドモバイルバックエンド)に置いたデータストア(レコードが入ったテーブルですね。)から単純に全件データをコンソールに表示するというもの。
以前にハイスコア管理を行なったアプリも作って運用している経験もあったので、コレ知ってる!と思ってやってみると、データの型がエラーを起こしているような反応が出ました。
不具合のソースコードは以下の通り。
文字列型と整数型は無事に格納したのに、日付でコケていることが判明。
調べると、日付「CreateDate」はユーザーが定義したデータフィールドではないので、ちょっと特殊な日付型。取得の方法が違うことがわかりました。なので、以下のように修正。
はい、上手く行きました。
留学生の彼にも大学のサーバーを通じて教えてあげました。超・真夜中だったけど。
大学で卒業制作を指導していて、留学生君が製作中の案件で上手く行かない相談に来ました。簡単だろうと思って、ささっと済まそうとすると、アレレ?なぜだろう。やはり上手く行かない。持ち帰って調べて解決しました。
まず案件は、NiftyCloudMobileBackend(ニフティクラウドモバイルバックエンド)に置いたデータストア(レコードが入ったテーブルですね。)から単純に全件データをコンソールに表示するというもの。
以前にハイスコア管理を行なったアプリも作って運用している経験もあったので、コレ知ってる!と思ってやってみると、データの型がエラーを起こしているような反応が出ました。
不具合のソースコードは以下の通り。
using System.Collections; using System.Collections.Generic; using UnityEngine; using NCMB; public class DataFetchAction : MonoBehaviour { void Start () { NCMBQueryquery = new NCMBQuery ("Attend"); query.FindAsync((List fetchData, NCMBException err) => { if (err != null) { Debug.Log("Error:" + err); } else { foreach (NCMBObject stored in fetchData) { string p = System.Convert.ToString(stored["Person"]); int r = System.Convert.ToInt32(stored["Room"]); string c = System.Convert.ToString(stored["createDate"]); Debug.Log(p + " : " + r + "-room : " + c ); } } }); } }
文字列型と整数型は無事に格納したのに、日付でコケていることが判明。
調べると、日付「CreateDate」はユーザーが定義したデータフィールドではないので、ちょっと特殊な日付型。取得の方法が違うことがわかりました。なので、以下のように修正。
foreach (NCMBObject stored in fetchData) { string p = System.Convert.ToString(stored["Person"]); int r = System.Convert.ToInt32(stored["Room"]); string c = System.Convert.ToString(stored.CreateDate); Debug.Log(p + " : " + r + "-room : " + c ); }
はい、上手く行きました。
留学生の彼にも大学のサーバーを通じて教えてあげました。超・真夜中だったけど。
コメント 0