UITextField setText无法更改文本

Sea*_*ntz 1 iphone cocoa-touch objective-c

正在调用以下方法,变量days具有有效值.打印第4行时,输出为"TextField Text :( null).daysTextField的地址为0x0(未实例化?).

IBOutlets正确连接以及属性/合成.

这真让我很沮丧.

-(void)updateDays:(NSInteger)days
{
    [daysTextField setText:[NSString stringWithFormat:@"%d", days]];
    NSLog(@"TextField Text: %@", daysTextField.text);
}
Run Code Online (Sandbox Code Playgroud)

非常感谢!

idz*_*idz 5

最可能的是,这daysTextField是零.如果这是Interface Builder的IBOutlet,请确保它正确连接.希望这可以帮助.

你可以试试这个:

-(void)updateDays:(NSInteger)days
{
    NSString* s = [NSString stringWithFormat:@"%d", days];
    NSAssert(s, @"string is nil");
    NSAssert(daysTextField, @"daysTextField is nil");
    [daysTextField setText:s];
    NSLog(@"TextField Text: %@", daysTextField.text);
}
Run Code Online (Sandbox Code Playgroud)

您的程序将在一个或另一个断言上崩溃到调试器中,您将获得答案.字符串不太可能是零.

  • 然后你可能会在`viewDidLoad`之前调用`updateDays`.另外如果你知道'daysTextField`是'nil`,那么在你的问题中提到这一点会很好. (2认同)