2015-11-18 4 views
0

Я пишу приложение iPhone с Swift 2.0, и я не хочу, чтобы люди могли вводить грязных символов в текстовое поле. Я пытаюсь превратить этот код в функцию и вернуть bool для использования позже в приложении. Пока что код делает то, что он должен делать на игровой площадке, не будучи включенным в функцию. Однако, когда я обертываю его функцией, игровая площадка не нравится код. Есть ли более простой способ сделать то, что я делаю?Есть ли лучший способ встретить грязные символы?

Я новичок в Swift 2.0, прочитал руководство по программированию, но не знаю, как найти функции, которые мне нужны в SDK/API. В прошлом я читал документацию Apple, но я не понял, как ее использовать. Кажется, я никогда не нахожу информацию, которую я ищу в ней.

Должен быть способ избежать сотен проходов.

Я также хотел бы посмотреть, как использовать возвращаемые значения позже. Руководство по программированию не дает хорошего реального примера.

Это мой первый язык.

var randomText: String = "D*rtyCh4ract3rs!#" 

    var isCleanText:Bool = true 

    let dirtyCharacters: String = "~`[email protected]#$%^&*()_+=-{}[]|;\'<>,./?1234567890" 

    var dirtyStringArray = [String]() 

    var boolCountArray = [Bool]() 

    for singleCharacter in dirtyCharacters.characters { 

     dirtyStringArray.append("\(singleCharacter)") 

     for testCase in dirtyStringArray { 

     if (randomText as NSString).containsString(testCase).boolValue { 

      boolCountArray.append((randomText as NSString).containsString(testCase).boolValue) 

      if boolCountArray.count > 0 { 

       isCleanText = false 

       print(boolCountArray) 

       break 

      } else { 

       isCleanText = true 
      } 
     } 
    } 
} 

печати (isCleanText)

+0

Существует функция 'filter()', найдите ее. –

ответ

0

Используйте NSCharacterSet держать свои «грязные» символы:

let dirtyCharacters = NSCharacterSet(charactersInString: "~`[email protected]#$%^&*()_+=-{}[]|;\'<>,./?1234567890") 

Затем вы можете обнаружить отсутствие каких-либо «грязной» характер, как это:

let isCleanText = randomText.rangeOfCharacterFromSet(dirtyCharacters) == nil 

Вы можете отфильтровать все «грязные» символы следующим образом:

let cleanedText = randomText.componentsSeparatedByCharactersInSet(dirtyCharacters) 
    .joinWithSeparator("") 

NSString Class Reference переполнен сочными кусочками.

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