Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.

APNS DeviceToken'i Swift ile String Olarak Kaydetme

0 oy
26 kez görüntülendi
20, Ocak, 20 ios development kategorisinde burhanaksendir tarafından soruldu

Yasin üstadım,
OBJC ile yazılmış şu kodu Swift'e uyarlayamadım:

let trimmedDeviceToken = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
        let parsedDeviceToken = [[trimmedDeviceToken componentsSeparatedByString:@" "] componentsJoinedByString:@""];

Burada didRegisterForRemoteNotificationsWithDeviceToken ile gelen deviceToken: Data yı string olarak almam gerekiyor.

yukarıdaki kod bloğunun, doğru şekilde çalışan Swift versiyonunu paylaşabilir misin?

Ben şöyle denedim ama print edince "32bytes" diye çıktı veriyor :)

let trimmedDeviceToken = deviceToken.description.trimmingCharacters(in: CharacterSet(charactersIn: "<>"))
        let parsedDeviceToken = trimmedDeviceToken.components(separatedBy: " ").joined(separator: "")
        print("Device Registered with Apple: \( parsedDeviceToken )")

1 cevap

+1 oy
21, Ocak, 21 burhanaksendir tarafından cevaplandı
 
En İyi Cevap

Tamamdır, çözdüm:

  let token = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
21, Ocak, 21 yasin tarafından yorumlandı

map yerine reduce'de kullanılabilir

let token = deviceToken.reduce("", { $0 + String(format: "%02.2hhx", $1) })
...