2011-09-12 62 views
0

如何从UITextField中的核心数据中保存一个数字,我知道它的东西很笨,但它的烦人,我不能绕它!保存NSNumber核心数据

IM现在这样做的,我不断收到空

NSLog(@"SaveData(CLIENT)"); 
[self dismissKeyboard]; 
Client *client = (Client *)[NSEntityDescription insertNewObjectForEntityForName:@"Client" inManagedObjectContext:managedObjectContext]; 

client.dayOfService = dayOfServiceTextField.text; 
client.clientName = clientNameTextField.text; 
client.typeOfClient = typeofClientTextField.text; 
client.addressLine1 = addressln1TextField.text; 
client.addressLine2 = addressln2TextField.text; 
client.idCardNumber = idcardNumberTextField.text; 


telephoneTextField.text = telephoneNumber; 
NSNumberFormatter * f1 = [[NSNumberFormatter alloc] init]; 
[f1 setNumberStyle:NSNumberFormatterDecimalStyle]; 
NSNumber * parsedTelephone = [f1 numberFromString:telephoneNumber]; 
NSLog(@"%@",parsedTelephone); 

[f1 release]; 

client.telephone = parsedTelephone; 
+0

你在'NSLog'语句中看到了什么?为什么你将电话号码存储为小数? – jrturton

+0

即时应该看到解析的数字,但我不,你如何建议将它们存储在核心数据? –

回答

4

NSNumberFormatterDecimalStyle是要期待一个十进制数。如果在你传递的字符串中找不到一个,它将不会返回任何内容。

电话号码可以包含任意数量的空格,连字符,加号,括号和散列符号。您应该将它们存储为NSString

如果您的其他要求是针对真正的号码,我建议您先将一个数字格式化程序附加到文本字段以验证您的输入(并且连接到相应的键盘类型),然后在文本上使用intValue方法字段的文本:

NSNumber *number = [NSNumber numberWithInt:[textField.text intValue]]; 
+0

谢谢! ,那么我会这样做,但是,我有另一个属性,必须是NSNumber,你将如何去绕它呢? –

+0

查看更新的答案 – jrturton