2016-04-05 5 views
-1

Ich habe einen Teil Code Ziel C-Code zu konvertieren, und ich will zügig konvertieren:wie characterIsMember Ziel c raschen

NSString *rawStr = [[tokenField textField] text]; 
     for (int i = 0; i < [rawStr length]; i++) 
     { 
      if (![charSet characterIsMember:[rawStr characterAtIndex:i]]) 
      { 
       [recipient appendFormat:@"%@",[NSString stringWithFormat:@"%c", [rawStr characterAtIndex:i]]]; 
      } 
     } 
     if ([rawStr length]) 
     { 
      [tokenField addTokenWithTitle:rawStr representedObject:recipient]; 
     } 

bitte leite mich darüber.

Antwort

3

Wenn Sie nichts dagegen nicht NSString der Port ist einfach:

let rawStr:NSString = tokenField.textField.text 
    for i in 0..<rawStr.length { 
     let currentChar = rawStr.characterAtIndex(i) 
     if !charSet.characterIsMember(currentChar) { 
      recipient.appendFormat("%@", NSString(format:"%c", currentChar)) 
     } 
    } 
    if rawStr.length > 0 { 
     tokenField.addTokenWithTitle(rawStr, representedObject:recipient) 
    } 

Else die String Klasse nicht über eine Länge Methode. Sie müssen s.startIndex.advancedBy Syntax verwenden.

-1

Es sieht so aus, als ob Sie versuchen, Zeichen zu behalten, die nicht in Ihrem Zeichensatz enthalten sind.

func strRemoveCharsNotInSet(str: String) -> String { 
    let charSet = NSCharacterSet(charactersInString: "[email protected]") 

    let temp = str.componentsSeparatedByCharactersInSet(charSet) 
    let backToString = temp.joinWithSeparator("") 

    return backToString 
} 

print(strRemoveChars("[email protected]")) 

outputs: 
    HelloThereFriend 
+0

Wenn Sie unten abstimmen, zumindest Kommentar warum. – ryantxr