【问题标题】:How to resolve error Implicit conversion of int to uitextfield is disallowed while migrating to ARC?如何解决错误 迁移到 ARC 时不允许将 int 隐式转换为 uitextfield?
【发布时间】:2012-03-30 20:08:15
【问题描述】:

将我的应用程序转换为 ARC 时出现错误。错误是:ARC 不允许将 int 隐式转换为 UItextfield。如何使用免费桥接进行转换?-

-(void)textFieldDidEndEditing:(UITextField *)textField {
    //if (![textField isEqual:normal]) {
    if (textField == numberKeyPad.currentTextField) {

        [self.numberKeyPad removeButtonFromKeyboard];

    }

    if (numberKeyPad.currentTextField ==normal) 
    {

        [self.numberKeyPad removeButtonFromKeyboard];

    }
}   

我收到 if (numberKeyPad.currentTextField ==normal) 行的错误。如何解决?

【问题讨论】:

  • 哎呀。看起来代码正在尝试将 int (“正常”)与 UITextField (“currentTextField”)进行比较,尽管很难从提供的代码 sn-p 中分辨出来 - 因为两者都没有在此范围内声明。也许您打算将“正常”与某个整数值进行比较,这将是一件好事。将其与 UITextField 进行比较,并非如此。希望这会有所帮助。

标签: iphone memory-management automatic-ref-counting


【解决方案1】:

您正在将对象 (UITextField) 与原始类型 (int) 进行比较。因为那个编译器抛出了一个错误。 试试这个 -

-(void)textFieldDidEndEditing:(UITextField *)textField {
    //if (![textField isEqual:normal]) {
    if (textField == numberKeyPad.currentTextField) {

        [self.numberKeyPad removeButtonFromKeyboard];

    }

    if ([((numberKeyPad.currentTextField).text) intValue] ==normal) 
    {

        [self.numberKeyPad removeButtonFromKeyboard];

    }
}   

【讨论】:

    猜你喜欢
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多