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

Передача инициализированных переменных из одного класса в другой (objective c, XCODE 5.0.2) - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Taglib Framework Objective-C http://www.cyberforum.ru/objective-c/thread1036623.html
Добрый день! Возникла проблема с подключением библиотеки TagLib к проекту в Xcode. На официальном сайте есть только исходники, и я не знаю, как их правильно подключить. Однако нашел фреймворк...
Objective-C Задание параметров объектам через цикл Хочу задать текст объектам подобным образом: for(int i=0; i<=; i++) { array.text = @"алилуя"; } Но компилятор ругается, говорит, что "id" не знает "text". Собственно как можно... http://www.cyberforum.ru/objective-c/thread1035218.html
Восстановление работоспособности Objective-C
помогите перебил ОС начисто...теперь не могу запустить приложение...-т е все запускается,но не работает... Ы З проекты копировал на флешку до переустановки ОС-все работало что делать?как...
Objective-C релизная сборка приложения под MAC
Интересует можно ли скомпилировать релизную сборку MAC приложения не имея сертификата разработчика. Ведь теоретически debug сборка может работать как самостоятельное приложение, достаточно ее...
Objective-C Интерактивная карта / псевдо карта http://www.cyberforum.ru/objective-c/thread1025836.html
Всем добрый день. Столкнулся с проблемой построения интерактивной карти. Просмотреть такую карту можно на этом сайте - это границы районов... Мне нужно от рисовать такую же псевдо-карту, и при...
Objective-C Жесты + View Controller Доброго времени суток Облазил кучу топиков стэк оферфлоу, но так и не нашел четкого, доступного ответа на свой вопрос. Собственно сабж: Есть viewcontroller1 и viewcontroller2, соответственно у... подробнее

Показать сообщение отдельно
TimurZham
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 6

Передача инициализированных переменных из одного класса в другой (objective c, XCODE 5.0.2) - Objective-C

12.12.2013, 00:46. Просмотров 3622. Ответов 14
Метки (Все метки)

Друзья помогите решить задачку! Я в этом деле новичек, поэтому прошу не винить за глупые вопросы))

Итак, создаю приложение для iPhone в XCODE 5.0.2, язык программирования Objective C.

Пишу приложение с несколькими представлениями. В первом представлении (класс FirstViewController) создал текстовые поля для ввода пользователем входных данных.

FirstViewController.h
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#import <UIKit/UIKit.h>
#import "TIMBrain.h"
 
@interface TIMFirstViewController : UIViewController
 
@property (weak, nonatomic) IBOutlet UITextField *KursDoll_USA;
@property (weak, nonatomic) IBOutlet UITextField *PFR;
@property (weak, nonatomic) IBOutlet UITextField *FFOMS;
@property (weak, nonatomic) IBOutlet UITextField *TFOMS;
 
- (IBAction)textFieldDoneEditing:(id)sender;
- (IBAction)backgroundTap:(id)sender;
 
@end
FirstViewController.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#import "TIMFirstViewController.h"
 
@interface TIMFirstViewController ()
 
@end
 
@implementation TIMFirstViewController
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}
 
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
//Прячем клавиатуру при нажатии кнопки done  на клавиатуре
- (IBAction)textFieldDoneEditing:(id)sender {
    [sender resignFirstResponder];
}
 
//Прячем клавиатуру при нажатии на любое свободное пространство на экране
- (IBAction)backgroundTap:(id)sender {
    TIMBrain *brain = [[TIMBrain alloc] init]; //Попытки передавать инициализированные данные
                                                                //в класс TIMBrain
 
    [self.KursDoll_USA resignFirstResponder];
    [self.PFR resignFirstResponder];
    [self.FFOMS resignFirstResponder];
    [self.TFOMS resignFirstResponder];
    NSLog(@"KURS = %@\n", self.KursDoll_USA.text);
    
    [brain setData]; //Попытки передавать инициализированные данные в класс TIMBrain
}
@end
Во втором представлении (класс SecondViewController) всего одна кнопка и одина метка.
SecondViewController.h
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
#import <UIKit/UIKit.h>
#import "TIMBrain.h"
 
@interface TIMSecondViewController : UIViewController {
    double strah;
}
 
@property (weak, nonatomic) IBOutlet UIButton *CountingData;
@property (weak, nonatomic) IBOutlet UILabel *labelStrahVznos;
- (IBAction)buttonPressed:(id)sender;
- (void)calcScreen;
 
@end
SecondViewController.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#import "TIMSecondViewController.h"
 
 
@interface TIMSecondViewController ()
 
@end
 
@implementation TIMSecondViewController
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}
 
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
- (IBAction)buttonPressed:(id)sender {
    TIMBrain *brain = [[TIMBrain alloc] init];
    
    strah = brain.countStrahVznos;
   
    NSLog(@"STRAH_VZNOS = %f\n", strah);
    
    [self calcScreen];
}
 
- (void)calcScreen {
    
    NSString *str = [NSString stringWithFormat: @"%0.16g", strah];
    [_labelStrahVznos setText:str];
    
}
И создал один класс TIMBrain для вычислений:
TIMBrain.h
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
#import <Foundation/Foundation.h>
#import "TIMFirstViewController.h"
 
@interface TIMBrain : NSObject {
 
    double pfr, ffoms, tfoms, kurs, mrot, pfr_d, ffoms_d, tfoms_d, strah_vznos;
    
}
 
-(double)countStrahVznos;
-(void)setData;
 
@end
TIMBrain.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#import "TIMBrain.h"
 
@implementation TIMBrain
 
-(void)setData {
    TIMFirstViewController *fview = [[TIMFirstViewController alloc] init];
    
    kurs = [fview.KursDoll_USA.text doubleValue];
    pfr = [fview.PFR.text doubleValue];
    ffoms = [fview.FFOMS.text doubleValue];
    tfoms = [fview.TFOMS.text doubleValue];
    NSLog(@"KURS1 = %f\n", kurs);
}
 
-(double)countStrahVznos {
    TIMFirstViewController *fview = [[TIMFirstViewController alloc] init];
    
    NSLog(@"KURS2 = %f\n", kurs);
 
    kurs = [fview.KursDoll_USA.text doubleValue];
    mrot = 11700/kurs;
    NSLog(@"MROT = %f", mrot);
    pfr = [fview.PFR.text doubleValue];
    ffoms = [fview.FFOMS.text doubleValue];
    tfoms = [fview.TFOMS.text doubleValue];
    kurs = [fview.KursDoll_USA.text doubleValue];
    pfr_d = mrot * 12 * pfr;
    ffoms_d = mrot * 12 * ffoms;
    tfoms_d = mrot * 12 * ffoms;
    
    strah_vznos = pfr_d + ffoms_d + tfoms_d;
    
    NSLog(@"MROT = %f\nPFR = %f\nFFOMS = %f\nTFOMS = %f\nSTRAH_VZNOS = %f\n", mrot, pfr_d, ffoms_d, tfoms_d, strah_vznos);
    return strah_vznos;
}
 
@end
Логика программы такова:

В первом представлении пользователь вводит входные данные, затем переходит на второе представление и нажимает кнопку, которая обрабатывает эти данные и выводит результат в метку.

Вопрос заключается в следующем:
Как мне передать введенные данные (уже инициализированные) из класса FirstViewController в класс TIMBrain (в метод countStrahVznos), что бы метод мог обрабатывать эти данные? На данный момент в метод передаются неинициализированные переменные.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru