gpt4 book ai didi

objective-c - 使用类将 NSString 传递到另一个 ViewController

转载 作者:行者123 更新时间:2023-11-29 04:26:22 25 4
gpt4 key购买 nike

我知道这非常简单,但我正在重新自学基础知识并尝试解决这个问题:-)

我有一个名为 MainVC 的 ViewController,还有一个名为 ClassVC

在 ClassVC 中我有以下代码:

@interface ClassVC : UIViewController
{
NSString *mainLine;
}

@property (nonatomic, retain) NSString *mainLine;
@end

我在实现文件中有这个:

@synthesize mainLine = _mainLine;

-(NSString *)_mainLine
{
_mainLine = @"This a string from a Class";
return _mainLine;
}

现在我在想,如果我将 ClassVC#import 到 MainVC 中,我也可以像这样传输该字符串:

 This code is in the viewDidLoad

_mainLabel.text = _secondClass.mainLine;

NSLog(@"%@", _secondClass.mainLine);

但这不起作用 - 所以我不能通过这种方式传递字符串吗???

最佳答案

您的属性是 mainLine,因此重写的 getter 应该是 -(NSString *)mainLine 而不是 -(NSString *)_mainLine。

-(NSString *)mainLine
{
_mainLine = @"This a string from a Class";
return _mainLine;
}

这对我有用。在VC类中:

@interface ClassVC : UIViewController 

@property (nonatomic, retain) NSString *mainLine;

@end


#import "ClassVC.h"

@implementation ClassVC

-(NSString *)mainLine
{
_mainLine = @"This a string from a Class";
return _mainLine;
}

在 ViewController 中:

#import <UIKit/UIKit.h>
@class ClassVC;

@interface ViewController : UIViewController

@property (strong,nonatomic) ClassVC *secondClass;
@property (weak, nonatomic) IBOutlet UILabel *mainLabel;
@end

#import "ViewController.h"
#import "ClassVC.h"

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
ClassVC *secondClass = [[ClassVC alloc] init];
self.mainLabel.text = secondClass.mainLine;
NSLog(@"%@", secondClass.mainLine);
}

关于objective-c - 使用类将 NSString 传递到另一个 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12291533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com