Swift3.0 で mobile backend を利用したプッシュ通知について
Swift2.2 でコーディングしていたプログラムを Xcode のバージョンアップを行い Swift3.0 にコードをコンバートしました。コンバートした結果出現したエラーは何とか取り除いた?のですがデータストアの installation に端末が登録されなくなってしまいました。 AppDelegate.swift のコードは現在このようになっています。(関係がありそうな部分を抜き出してます)
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
//********** APIキーの設定 **********
let applicationkey = ""
let clientkey = ""
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
//********** SDKの初期化 **********
NCMB.setApplicationKey(applicationkey, clientKey: clientkey)
// デバイストークンの要求
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1){
/** iOS8以上 **/
//通知のタイプを設定したsettingを用意
let type : UIUserNotificationType = [.alert, .badge, .sound]
let setting = UIUserNotificationSettings(types: type, categories: nil)
//通知のタイプを設定
application.registerUserNotificationSettings(setting)
//DevoceTokenを要求
application.registerForRemoteNotifications()
}
return true
}
// デバイストークンが取得されたら呼び出されるメソッド
private func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData){
print("デバイストークンメソッド");
// 端末情報を扱うNCMBInstallationのインスタンスを作成
let installation = NCMBInstallation.current()
// デバイストークンの設定
installation?.setDeviceTokenFrom(deviceToken as Data!)
// 端末情報をデータストアに登録
installation?.saveInBackground { (error) -> Void in
if (error != nil){
// 端末情報の登録に失敗した時の処理
}else{
// 端末情報の登録に成功した時の処理
}
}
}
}
Swift2.2 の時のコードはここのサイトに書いてあるサンプルとほぼ同じです。
installation に端末が登録されるにはどうすればいいでしょうか?よろしくお願いします。