2013-12-15 2 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.';;) –

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