2016-11-10 7 views
1

Meine aktuelle Implementierung hat:swift3 Version für emojilessStringWithSubstitution

var emojilessStringWithSubstitution: String { 
    let emojiPatterns = [UnicodeScalar(0x10000)...UnicodeScalar(0x10FFFF), UnicodeScalar(0x2600)...UnicodeScalar(0x27ff)] 
    return self.unicodeScalars 
     .filter { ucScalar in !(emojiPatterns.contains{ $0 ~= ucScalar }) } 
     .reduce("") { $0 + String($1) } 
} 

Fehler, die auftreten, sind: 1. Integer-Literale Überlauf, wenn sie in UInt8 gespeichert 2. wenn ich die Unicode-Skalar speichern in Variablen und dann versuchen zuweisen dann ist der Fehler Binär-Operator '...' kann nicht auf zwei 'UnicodeScalar angewendet werden?' Operanden

Bitte helfen.

Antwort

2

Ihren Code ändern, wie unten,

var emojilessStringWithSubstitution: String { 
    let emojiPatterns = [0x10000...0x10FFFF, 0x2600...0x27ff] 
    return self.unicodeScalars 
     .filter { ucScalar in !(emojiPatterns.contains{ $0 ~= Int(ucScalar.value) }) } 
     .reduce("") { $0 + String($1) } 
} 
+1

Dank @Arun. hat perfekt funktioniert. –

+0

rettete mein Leben: D –