2016-11-10 43 views
1

我目前的执行有:发生在Swift3版本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) } 
} 

错误: 1.整数溢出的文字时,存入UINT8 2.当我的Unicode标存储在变量,然后尝试分配那么错误是二进制运算符'...'不能应用于两个'UnicodeScalar'?操作数

请帮忙。

回答

2

修改如下代码,

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

谢谢@Arun。完美地工作。 –

+0

救了我的命:D –