2013-04-19 3 views
-2

В обязательной проверке, я проверяю, если мой TextField пуст с помощью этого метода:Длины строки Objective C

- (NSString *) clean: (NSString *) str 
{ 
    return [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
} 

и при вставке в базе данных:

if([self clean:textfield.text].length == 0) 
{ 
//Error 
} 

Мне было интересно, если я должен использовать < = 0? для предотвращения какой-либо подозрительной ошибки/ошибки позже. Как у нас есть на сайтах (SQL-инъекция и другие). Может ли кто-то вставить строку с отрицательной длиной в текстовое поле в iOS APP?

+0

no is unsigned –

+1

Этот метод выглядит так, как будто он будет жить довольно красиво, как категория, а не привязан к произвольному классу –

ответ

2
NSSTring *text = [textfield.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

if ([text length] == 0) 
{ 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Please enter text." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

    [alert show]; 

} 

Будет проверено, пусто ли текстовое поле или нет !!!!!!!

+0

Что нужно для вызова 'stringByAddingPercentEscapesUsingEncoding', чтобы увидеть, пустое или нет текстовое поле? – rmaddy

2

Согласно яблочной документации, прототип метода длиной является:

- (NSUInteger)length 

Handle отрицательных значений тогда не надо (у вас есть беззнаковое возвращаемое значение), так что «== 0» нормален для тестирование.

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