Как передать значения между классами в цели C? - PullRequest
0 голосов
/ 03 марта 2019

В настоящее время я пытаюсь понять, почему мои значения не передаются в xcode.Мой код выглядит правильно, но по какой-то причине он не проходит.

Вот как выглядит TheView.h

//View Header File
#import <UIKit/UIKit.h>

IB_DESIGNABLE
@interface TheView : UIView
@property NSString *dateTimeString;
@end

и TheView.m

// m file of View
#import "TheView.h"
@implementation TheView

// Display method here with dateTimeString in parems
[DrawCanvas dateText: self.dateTimeString];

@end

В моем файле контроллера .h у меня есть этот код

// Controller File
#import "TheView.h"

@interface MainViewController: UIViewController
@property (weak, nonatomic) IBOutlet TheView *rootView;

@end

MainViewController .m file

#import "MainViewController.h"
#import "TheView.h"

@interface MainViewController ()
@property (string, nonatomic) NSTimer *currentTime;
@end

@implementation MainViewController

-(void)updateTime
{
  // prints date successfully
  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  NSLocale time = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
  dateFormatter.locale = time;
  formatString = [NSDATEFORMATTER dateFormatFromTemplate:@"EEEE, hh:mm" options:0 locale:[NSLocale currentLocale]];

  [dateFormatter setDateFormat:formatString];
  NSString *resultString = [dateFormatter stringFromDate:[NSDate date]];

  // Current issue is that it isn't passed from here to TheView.m
  [_rootView setdateTimeString:resultString];
}

Из того, что я понимаю в отладке, строка из контроллера дает нужный мне результат, но он просто не устанавливает значение.

Если это помогает, этот код называется viewWillAppear, поэтому он вызовет метод updateTime и не будет равен нулю в теории.

1 Ответ

0 голосов
/ 03 марта 2019
  1. Похоже, что DisplayView объявлено в TheView.h.DisplayView должно быть объявлено в DisplayView.h & DisplayView.m

  2. , если вы хотите установить значение, просто скажите _rootview.dateTimeString = resultString;

  3. Установите точку останова и проверьте на ноль resultString при ее установке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...