gpt4 book ai didi

ios - UITextField 可能发布得太早,我不知道在哪里以及为什么

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

以下是我类值得关注的领域:

.h

@interface TimerViewController : UIViewController <UITextFieldDelegate> {
IBOutlet UITextField *hourField,*minuteField;
}

@property (strong, nonatomic) IBOutlet UITextField *hourField,*minuteField;

@end

.m

@implementation TimerViewController
@synthesize hourField,minuteField;

@end

我的问题是,在应用程序崩溃并显示以下日志之前,我可以多次使用文本字段(检索和设置属性):

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'-[__NSCFString setText:]: unrecognized selector sent to instance 0x1e1dafa0'

当代码[self.hourField setText:@"5"];运行时会发生这种情况。检查 [self.hourField isFirstResponder] 是否具有相同类型的日志时也会发生这种情况。

控制台将文本字段视为__NSCFString,这让我认为它可能已被发布?

与 ARC 一起运行,并且我总是使用合成访问器。以前从未遇到过这个问题,也不知道我哪里出了问题。

最佳答案

我认为问题可能在于您声明变量的方式困惑。您不再需要 @synthesize 语句,并且通常您希望私有(private) iVar 具有与属性声明不同的拼写。要查看这是否是问题所在,请删除您的 @property 声明和 @synthesize 并简单地访问 hourField 作为 [hourField setText:@"5"]; 。另一种方法是完全删除 @synthesize 和 iVar 声明。

我要检查的其他内容是 IBOutlet 是否连接到 .xib 或 Storyboard中的正确项目。

关于ios - UITextField 可能发布得太早,我不知道在哪里以及为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13614298/

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