Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.95
kvakvit
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 37
#1

Числа из TextField в CGFloat - Objective-C

21.12.2013, 14:47. Просмотров 2301. Ответов 24
Метки нет (Все метки)

Здравствуйте.
Пользователь вводит числа в поле, мне нужно сохранить эти значения в перменные типа CGFloat. Как можно сделать? Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kvakvit
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 37
25.12.2013, 22:26  [ТС]     Числа из TextField в CGFloat #21
Цитата Сообщение от Xavier Посмотреть сообщение
Скинь тогда весь код цикла для большей информативности, ибо не понятно как textField зависит от i.
textField`ы лежат в массиве, на каждом шагу переменная textField является указателем на один из них.
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
25.12.2013, 23:20     Числа из TextField в CGFloat #22
Чем такой огород городить, проще написать
Objective-C
1
2
3
float1 = [fields[0].text floatValue];
float2 = [fields[1].text floatValue];
float3 = [fields[2].text floatValue];
И кода меньше, и работает он быстрее. Говнокодить, так хоть оптимально
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
26.12.2013, 13:33     Числа из TextField в CGFloat #23
Ради интереса попробовал реализовать все через KVO.

Сделал так:
1) создал 2 TextField-a в IB (можно и больше не суть важно)
2) соединил их все с outlet collection:

Objective-C
1
@property (strong, nonatomic) IBOutletCollection(UITextField) NSArray *tf;
3) так-же создал у моего контролера property NSMutableArray (туда складываются значения наших чисел введенных пользователем) :
Objective-C
1
2
3
4
5
@interface MYViewController ()
 
@property(nonatomic,strong)NSMutableArray *floats;
 
@end
4) в методе viewDidLoad моего контроллера назначил объекты массива floats наблюдателями за изменениями в textField
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
- (void)viewDidLoad
{
    [super viewDidLoad];
    self.floats=[[NSMutableArray alloc]init];
    [self.tf enumerateObjectsUsingBlock:^(UITextField* obj, NSUInteger idx, BOOL *stop) {
        NSMutableString *fl=[[NSMutableString alloc]initWithFormat:@"%d",0];
        [self.floats addObject:fl];
        [obj addObserver:self.floats[idx] forKeyPath:@"text.floatValue" options:NSKeyValueObservingOptionNew context:nil];
    }];
    
    NSLog(@"done");
    // Do any additional setup after loading the view, typically from a nib.
}
Кстати оказалось что NSNumber я не могу использовать так как он immutable, так что пришлось для хранения чисел использовать NSMutableString.

5) добавил категорию для NSMutableString для отлова изменений
Objective-C
1
2
3
4
5
6
7
8
@implementation NSMutableString (observe)
 
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
    NSNumber *newNumber=change[@"new"];
    [self setString:[NSMutableString stringWithFormat:@"%@",newNumber]];
}
 
@end
В итоге получаем массив с NSMutableString из них берем floatValue и получаем наши float числа для каждого textField которые потом можно использовать в вычислениях как угодно. И они автоматически изменяются если пользователь ввел новые числа в поле.

Как вариант ТС может использовать этот способ для "отлова" введенных пользователем чисел и дальнейшее их использование.

Интересует также мнение других целесообразно ли вообще использовать такой способ?
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
26.12.2013, 13:48     Числа из TextField в CGFloat #24
Xavier, спасибо, порадовали.
KVO, Outlet collection etc. И все это для ответа на вопрос под заголовком "Числа из TextField в CGFloat". Ну учитывайте же уровень знаний собеседника ))))
Кстати,
Цитата Сообщение от Xavier Посмотреть сообщение
оказалось что NSNumber я не могу использовать так как он immutable
Кто мешает заменять их в Mutable Array? replaceObjectAtIndex:withObject: отменили?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2013, 13:51     Числа из TextField в CGFloat
Еще ссылки по теме:

Вывести числа в цикле на TextField JavaFX
Пополе TextField JavaFX
TextField JavaFX

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
26.12.2013, 13:51     Числа из TextField в CGFloat #25
Цитата Сообщение от mobidevelop Посмотреть сообщение
спасибо, порадовали.
Ну хоть что то

Цитата Сообщение от mobidevelop Посмотреть сообщение
Кто мешает заменять их в Mutable Array? replaceObjectAtIndex:withObject: отменили?
чето я про это запамятовал
Yandex
Объявления
26.12.2013, 13:51     Числа из TextField в CGFloat
Ответ Создать тему
Опции темы

Текущее время: 09:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru