在Swift中枚举SubstringsInRange

时间:2014-09-19 10:45:50

标签: ios swift emoji

我将现有的目标c代码(ios)重写为Swift,面对enumerateSubstringsInRange方法的一些问题。任何人都可以帮助我将以下代码转换为Swift吗?

[contentString enumerateSubstringsInRange:NSMakeRange(0,[contentString length])
                               options:NSStringEnumerationByComposedCharacterSequences
                               usingBlock: ^(NSString *substring,
                               NSRange substringRange, 
                               NSRange enclosingRange,BOOL *stop) {

          if(substring.length >= 2) {
              /* my code goes here */
          }
    }
]

4 个答案:

答案 0 :(得分:2)

试试这个:

contentString.enumerateSubstringsInRange(NSMakeRange(0, (contentString as NSString).length), options: NSStringEnumerationOptions.ByComposedCharacterSequences) { (substring, substringRange, enclosingRange, stop) -> () in
    if((substring as NSString).length >= 2) {
        NSLog("%@", substring)
    } 
}

注意,为了访问String的长度属性,您必须将其转换为NSString,如上所示。

答案 1 :(得分:0)

对于Swift 3.0.2版,请使用以下代码

         string.enumerateSubstrings(in: NSMakeRange(0, (string as NSString).length), options: NSString.EnumerationOptions.byComposedCharacterSequences) { (substring, substringRange, enclosingRange, stop) -> () in

        let objCString:NSString = NSString(string:substring!)
        let hs: unichar = objCString.character(at: 0)
    }

答案 2 :(得分:0)

你可以试试这个。

       contentString.enumerateSubstrings(in: NSRange(location: 0, length: contentString.length), options: NSStringEnumerationByComposedCharacterSequences, usingBlock: {(_ substring: String, _ substringRange: NSRange, _ enclosingRange: NSRange, _ stop: Bool) -> Void in
        if substring.length >= 2 {
            /* my code goes here */
        }
    })

更多信息,您可以在此处转换您的在线代码数量。 https://iswift.org/try。希望这有帮助。

答案 3 :(得分:-1)

让contentString:NSString =“string”;

contentString.enumerateSubstrings(in:NSRange.init(location:0,length:contentString.length),options:NSString.EnumerationOptions.byComposedCharacterSequences){(substring,substringRange,enclosingRange,             停止)             //你的代码         }