2017-02-04 8 views
0

Привет, парень, это не дубликат How can I limit the number of decimal points in a UITextField?. Здесь я хочу получить ответ для быстрого 3.0.Как предотвратить двойные точки в десятичной клавиатуре для UITextField в iOS с помощью swift 3.0?

Я получаю ввод от пользователя в UITextField с использованием десятичной клавиатуры. Если пользователь введет 123.45, это нормально. Но если пользователь вводит 123.45.35, он сбрасывает мое приложение.

Итак, как мне подсчитать количество точек в String и запретить пользователю вводить двойные точки.

Я искал это, но не смог получить идеальный ответ. А также видел это stack_question.

Пожалуйста, помогите мне, приятели.

+0

Да, такая же проблема, но, требуется в Swift 3.0 –

+0

@ Непрочитайте это не дубликат этого вопроса, так как это задано и отвечает на другом языке программирования. –

+0

Парень, пожалуйста, помогите мне. Мне нужен ответ в Swift 3.0 –

ответ

3

Чтобы проверить количество вхождений символа в String (точек в данном случае), вы можете использовать for in цикл:

var string = textField.text! 
var count = 0 

for char in string.characters{ 
    if char == "."{count+=1} 
} 
if count > 1{ 
    //... the input contains 2 or more dots... 
    print("Invalid") 
} 
else{ 
    //... the input contains 1 or less dots 
    print("Valid") 
    // your code goes here 
} 

EDIT:

На мой взгляд, даже лучшее решение будет фильтровать массив, а затем использовать свойство count, хотя некоторые могут сказать, что это не нужно, но я считаю это лучшим решением, поскольку оно позволяет избежать for in loop:

var dots = string.characters.filter(){ $0 == "." } 
let count = dots.count 

if count>1{ 
    //... the input contains 2 or more dots... 
    print("Invalid...") 
} 
else{ 
    //... the input contains 1 or less dots 
    print("Valid") 
    // your code goes here 
} 

Но я предлагаю вам выбрать наиболее удобное для вас решение.

+0

Thanx отлично работает. –

+0

Добро пожаловать! Если у вас есть другие вопросы об этом, не стесняйтесь спрашивать –

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

  • Нет связанных вопросов^_^