NSLog
正在返回输出“Null”而不是我预期的字符串。我怀疑这是私有实例变量等的问题,但由于我不熟悉面向对象的编程,我无法确定原因。
//The viewDidLoad method in MainGameDisplay.m:
- (void)viewDidLoad
{
[super viewDidLoad];
Engine *engine = [[Engine alloc] init];
[engine setPlayerName: viewController];
}
字符串由 a 输入UITextField
,属性为
//ViewController.h
@property (strong, nonatomic) IBOutlet UITextField *PlayerNameTextView;
该方法可以正常工作并返回正确的字符串,如果[engine setPlayerName: self]
放置在ViewController
中,但在该位置之外的任何地方*PlayerNameTextView
都会导致此问题。
//Engine.m
@implementation Engine
{
ViewController *firstPage;
}
NSString *Player;
-(void) setPlayerName: (ViewController *) name
{
Player = [[name PlayerNameTextView] text];
NSLog(@"%@", Player);
}