如何在目标C中的类之间传递值?

时间:2019-03-02 23:33:18

标签: ios objective-c xcode

我目前坚持弄清楚为什么我的值没有在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文件

#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 :(得分:1)

  1. 似乎DisplayView中声明了TheView.hDisplayView应该在DisplayView.hDisplayView.m

  2. 中声明
  3. 要设置值时,只需说_rootview.dateTimeString = resultString;

  4. 设置断点,并在设置resultString时检查是否为零。