2013-07-21 1 views
0

Привет, когда я пытаюсь сохранить PHONENUMBER с этой линии на CoreData элементНевозможно сохранить или правильно набрать PHONENUMBER, слишком большой Ios

  [newLead setValue:[NSNumber numberWithInteger:[self.cellTextField.text doubleValue] ] forKey:@"cell"]; 

Тогда я загрузить его с этим

[self.cellTextField setText:[[self.lead valueForKey:@"cell"] stringValue]]; 

Он работает, но если число похоже на 905666777, это число слишком велико, и я получаю 2147483647

Как я могу использовать его в качестве номера 905?

также, когда я набрать номер с помощью

 NSURL *telUrl = [NSURL URLWithString:[@"tel://" stringByAppendingString:@"cell"]]; 
[[UIApplication sharedApplication] openURL:telUrl]; 

Он только набирает первые 3 цифры 214, как я могу сделать это набрать все цифры

Спасибо

+0

Первая строка должна читать '[newLead setValue: [NSNumber numberWithInteger: [self.cellTextField.text integerValue]] forKey: @" cell "];' с ** integerValue ** вместо doubleValue – bachonk

+0

@bachonk да, я поймал это и исправлено, но все же –

ответ

3

Проблема заключается в том, что вы сохраняете номер телефона в виде числового значения, поэтому вы используете ограничения на числовые типы. Нет причин для этого: вы должны использовать строку. Например, вы никогда не будете делать математику по номеру телефона. Любые выборки, которые вы могли бы сделать (например, поиск телефонных номеров с определенным кодом зоны), будут сложнее с числовым типом, чем с строкой.

+1

Согласовано. Номера телефонов - это не просто цифры и никогда не должны рассматриваться как таковые. Международные номера начинаются с '+' и могут содержать круглые скобки, и многие телефонные номера содержат ведущие нули, которые необходимо сохранить. – Jim

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

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