Um es zu machen, so dass die Zeichenfolge in der Klasse erscheint 2 Wie Sie es in einer anderen Klasse (Klasse 1) deklariert haben, müssen Sie es so einrichten, dass das Initialisieren eines Objekts der Klasse 1 der Zeichenfolge auch einen Wert zuweist. Beispielsweise.
ViewControllerA.h:
@interface ViewControllerA : UIViewController
@property (weak, nonatomic) NSString *test;
-(instancetype)init;
@end
ViewControllerA.m
#import "ViewControllerA.h"
@interface ViewControllerA()
@end
@implementation ViewControllerString
-(instancetype)init{
self = [super init];
if (self) {
_test = @"Testing stuff";
}
return self;
}
ViewControllerB.h:
#import "ViewControllerA.h"
@interface ViewControllerB : UIViewController
@property (strong, nonatomic) ViewControllerA *vcString;
@end
ViewControllerB.m:
#import "ViewControllerB.h"
@interface ViewControllerB()
@end
@implementation ViewControllerB
- (void)viewDidLoad {
[super viewDidLoad];
_vcString = [[ViewControllerA alloc]init];
NSLog(@"%@", self.vcString.test);
}
Wenn Sie eine bestimmte initializer in ViewControllerA schaffen, macht es so, dass, wann immer Sie tun:
ViewControllerA *viewControllerAObject = [ViewControllerA alloc]init];
in einer anderen Klasse, können Sie ein ViewControllerA Objekt machen, die mit einem bestimmten Textzeichenfolge kommt, wenn es initialisiert wird.
Erstellen Sie eine Instanz von 'ViewcontrollerA' und weisen Sie sie der Eigenschaft' VCA' zu? – rmaddy
Es liegt daran, dass die Eigenschaft ViewcontrollerA * VCA gleich Null ist. Sie haben es deklariert, aber Sie haben keine Instanz von ViewControllerA zugewiesen. –
@ rmaddy-können wir Singleton für diesen Zweck verwenden, so dass wann immer wir eine Instanz des View-Controllers wollen, können wir nur [VC sharedInstance]? –