2013-12-15 34 views
0

我有一個UITextField,我希望從中提取整數值並將其放入NSUserdefaults。UITextfield到NSUserDefaults類型錯誤

@property (weak, nonatomic) IBOutlet UITextField *defaultTipPercentage; 

[defaults setInteger: defaultTipPercentage forKey:@"another_key_that_you_choose"]; 

我收到一個錯誤說

Use of undeclared identifer 'defaultTipPercentage'. did you mean '_defaultTipPercentage?'

我試過,但我得到一個錯誤

Incompatible pointer to integer conversion sending 'UITextField *_weak' to parameter of type 'NSInteger'(aka 'Int')

差不多就只有不兼容的類型。我想知道這將是一個快速修復這個

回答

1

你有2個問題。

  1. 您無法直接將文本字段寫入用戶默認值 - 您需要文本,或者說文本的整數值。

  2. 使用屬性,您需要使用self.defaultTipPercentage(使用getter)或_defaultTipPercentage(它直接引用支持實例變量)引用它。使用self.xxx語法通常更安全。

Jenox已經發布了代碼來解決評論中的第一個問題。

要解決也第二個問題,你需要使用屬性列表語法:

NSInteger tip = [self.defaultTipPercentage.text integerValue]; 
[defaults setInteger:tip forKey:@"another_key_that_you_choose"]; 
1

NSInteger tip = [self.defaultTipPercentage.text integerValue];
[defaults setInteger:tip forKey:@"another_key_that_you_choose"];

+0

關閉,但defaultTipPercentage是一個屬性,因此它必須是NSInteger的尖端= [self.defaultTipPercentage.text integerValue] ; –

+0

我收到同樣的建議添加'_',但是當我這樣做的時候 – Liondancer

+0

或者添加'self.';) –