Objective c UITextfield未显示分配的NSString

Objective c UITextfield未显示分配的NSString,objective-c,xcode,uitextfield,Objective C,Xcode,Uitextfield,UITextfield显示空事件,但nsstring有值 我在IB中使用了uitextfield。IB中的连接是正确的 这是一个.h文件 { IBOutlet UITextField *dobTextField; } @property (nonatomic, retain) UITextField *dobTextField; 在.m文件中 @synthesize dobTextField; -(void)displayDOB:(NSString*)str {

UITextfield显示空事件,但nsstring有值

我在IB中使用了uitextfield。IB中的连接是正确的

这是一个.h文件

{
    IBOutlet UITextField    *dobTextField;
}

@property (nonatomic, retain) UITextField    *dobTextField;
在.m文件中

@synthesize dobTextField;

-(void)displayDOB:(NSString*)str
{
    NSLog(@"%@", str);
    dobTextField.text = str;
}
在日志中,它显示了一些值。。。但是dobTextField显示为空…我试过了

dobTextField.text = [NSString StringWithValue:@"%@", str]; 
但是没有用

请帮帮我,伙计们。

试试

NSLog(@"%@", self.dobTextField);
是零吗?(不应该这样)

听起来你可能还没有连接IB的插座

编辑

嗯。。。再想一想,我觉得你把事情搞糊涂了

  • 从.h文件中删除ivar。只需使用@property

    @property (nonatomic, retain) IBOutlet UITextField *dobTextField;
    
  • 从.m文件中删除@synthesis

  • 在displayDOB函数中使用此

    self.dobTextField.text = str;
    

  • 这将确保所有内容都指向同一事物,并且在涉及属性时使用最佳实践方法。

    您似乎还没有在xib中设置UITextField的出口

    在界面生成器中检查该选项

    而且, 换行

    @property (nonatomic, retain) UITextField    *dobTextField;
    

    还有,换一行

    dobTextField.text = str;
    


    希望这对您有所帮助。

    然后按照我的步骤进行操作。看起来你把ivar和财产混在一起了,还是没用。。。我错过什么了吗。。。r我们需要分配它还是什么?如果你已经按照步骤进行了,那么你可能会发现你需要在IB中再次连接。在属性旁边应该是一个小的填充圆圈(在空白处)。如果没有填写,则它没有连接。ivar和属性由合成语句连接,因为它们具有相同的名称。是的,但不建议这样做。苹果建议根本不要使用ivar。这就是我的建议。你们的班级分配正确吗?第一个建议是正确的。第二个是保留文本字段?文本字段不需要保留,它已经被视图本身保留了。如果没有ARC,它也可能是一个弱属性。@RamyAlZuhouri强烈建议,如果您正在处理任何对象的属性,则应使用self.objectname访问它。不建议使用任何方法,它们只是不同的方法,您应该根据情况使用正确的方法。在这种情况下,他不需要保留文本字段,这样他就可以安全地声明它弱,或者不使用访问器。@RamyAlZuhouri很奇怪,你有这么好的声誉,你说不要使用self.objectname:)如果我使用ARC,有什么解决方案。。。
    dobTextField.text = str;
    
    self.dobTextField.text = str;