cari

Rumah  >  Soal Jawab  >  teks badan

ios - swift3.0 device token转换问题

swift3.0调用注册方法
// 注册获得device Token

    UIApplication.shared.registerForRemoteNotifications()

收到回调通知
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {

    
    let device = deviceToken.description.replacingOccurrences(of: "<", with: "").replacingOccurrences(of: ">", with: "").replacingOccurrences(of: " ", with: "")
    print(device)
    print("Device Token:\(String(describing: deviceToken))")
}

然而打印的数据一直是
32bytes
Device Token:32 bytes

难道我上面的转换方式写错了吗 为什么不应该是一个正常的字符串的系列号之类
PS:OC写法
NSString *deviceTokenString2 = [[[[deviceTokendescription] stringByReplacingOccurrencesOfString:@"<"withString:@""]

                                                            stringByReplacingOccurrencesOfString:@">" withString:@""]

                                                            stringByReplacingOccurrencesOfString:@" " withString:@""];

NSLog(@"方式2:%@", deviceTokenString2);
PHP中文网PHP中文网2810 hari yang lalu712

membalas semua(1)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 09:52:06

    Nampaknya tiada siapa yang menemuinya, atau terlalu mudah dan tiada siapa yang mengambil berat tentangnya.
    Tetapi akhirnya saya menemui jawapannya.
    Kaedah penukaran adalah betul, tetapi
    aplikasi berfungsi(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    Ada sesuatu yang tidak kena dengan deviceToken I tidak tahu sama ada ia masalah Apple. Atau bagaimana pula
    tetapi tambah satu ayat
    biarkan nsdataStr = NSData.init(data: deviceToken)
    buat semula salinan
    dan kemudian laksanakan
    biarkan datastr = nsdataStr.description.relacingOccurrences( of: "<", with: "").replacingOccurrences(of: ">", with: "").replacingOccurrences(of: " ", with: " ")

         print("deviceToken:\(datastr)")

    Anda boleh mengeluarkan hasil yang diingini

    balas
    0
  • Batalbalas