【问题标题】:"UITextField isNaturallyRTL"“UITextField 是自然 RTL”
【发布时间】:2023-03-04 01:46:02
【问题描述】:

我的 iphone 应用程序崩溃并显示以下错误消息:

2010-07-26 16:27:30.402 导航[814:207] * -[UITextField isNaturallyRTL]: 无法识别的选择器发送到实例 0x3947fe0 2010-07-26 16:27:30.403 Nav[814:207] * 终止应用程序到期 未捕获的异常 'NSInvalidArgumentException',原因: '*** -[UITextField isNaturallyRTL]: 无法识别的选择器发送到实例 0x3947fe0'

我在我的程序中找不到文本 isNaturally RTL。关于如何找到错误的任何想法?

【问题讨论】:

    标签: objective-c cocoa


    【解决方案1】:

    似乎isNaturallyRTL 是一个(未记录的)NSString 方法。至少NSString 会响应它。

    这可能意味着您将UITextField 分配给某个变量,而您应该在其中输入NSString

    顺便说一句:0x3947fe0 是指向应该是NSStringUITextField 的指针,所以如果你完全迷路了,试着找出哪个UITextField 有那个地址(例如,由一个愚蠢的@987654330 @)

    【讨论】:

    • 当我尝试运行它时,它说 tfx 未声明。
    • 你应该为tfx 放入你自己的UITextField 变量(我不知道你是怎么命名的)
    【解决方案2】:

    我发现了问题。就是在这行代码中:

    [tempValues setObject:textFieldBeingEdited forKey:tagAsNum];
    

    我把它改成如下:

    [tempValues setObject:textFieldBeingEdited.text forKey:tagAsNum];
    

    这就是修复它的原因。

    【讨论】:

    • 所以这是你的UITextField 而不是NSString 分配!
    • 顺便说一句,这就是为什么我在 Stack Overflow 上其他人的问题中经常看到的“nameText”的文本字段命名模式是一个坏主意。
    • 嗨,我在哪里可以找到 '[tempValues setObject:textFieldBeingEdited forKey:tagAsNum];????我在我的图形 api 中尝试过,但没有得到它。其中提到了?请指导我。谢谢'
    【解决方案3】:

    这是因为您的 UITextField 对象以某种方式分配给了一个不应该是 UITextField 的变量/属性。

    它可以通过许多不同的方式发生。

    1. 您可能错误地连接了 IB 插座。在 Interface Builder 中检查你的 nib,看看你的 UITextField 没有连接到奇怪的东西。
    2. 您可能刚刚将UITextField 分配给了不同类型的变量。在这种情况下,编译器应该给你一个警告。更正您的代码并删除所有警告。
    3. 您可能没有正确完成retain/release。执行“构建和分析”,并删除所有警告。

    【讨论】:

      猜你喜欢
      • 2018-09-23
      • 2016-07-06
      • 2016-10-07
      • 2018-12-06
      • 1970-01-01
      • 2023-02-15
      • 2017-02-10
      • 1970-01-01
      • 2011-10-01
      相关资源
      最近更新 更多