我将现有的目标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 */
}
}
]
答案 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, 停止) //你的代码 }