Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
515 kez görüntülendi
ios development kategorisinde tarafından

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
tarafından
 
En İyi Cevap

Tamamdır, çözdüm:

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

map yerine reduce'de kullanılabilir

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