ios - swift3.0 device token转换问题
PHP中文网
PHP中文网 2017-04-18 09:50:06
0
1
652

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中文网

认证高级PHP讲师

모든 응답(1)
Ty80

아무도 접해보지 못한 것 같거나, 너무 단순해서 아무도 관심을 두지 않는 것 같습니다.
그런데 드디어 답을 찾았습니다.
변환 방법은 맞지만
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken: Data) {
반환된 deviceToken에 문제가 있습니다. Apple 문제인지는 모르겠지만
한 문장만 추가하세요
let nsdataStr = NSData.init(data: deviceToken)
복사본을 다시 인스턴스화한 다음
실행하세요.
let datastr = nsdataStr.description.replacingOccurrences( of: "<", with: "").replacingOccurrences(of: ">", with: "").replacingOccurrences(of: " ", with: " ")

으아악

원하는 결과를 출력할 수 있습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!