2016-04-05 2 views
-1

У меня есть одна часть коды Objective C код, и я хочу, чтобы преобразовать в стриж:как преобразовать цель characterIsMember с к быстрым

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]; 
     } 

, пожалуйста, руководство меня об этом.

ответ

3

Если вы не возражаете, используя NSString порт прямо вперед:

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) 
    } 

иначе String класс не имеет метода длины. Вам нужно будет использовать синтаксис s.startIndex.advancedBy.

-1

Похоже, вы пытаетесь сохранить символы, которых нет в вашем наборе символов.

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

Если вы голосуете, по крайней мере, комментируете почему. – ryantxr

Смежные вопросы