2010-07-26 61 views
2

我iPhone应用程序崩溃,并显示以下错误消息:“的UITextField isNaturallyRTL”

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

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

回答

3

我找到了问题。正是在这行代码:

[tempValues setObject:textFieldBeingEdited forKey:tagAsNum]; 

我把它改成如下:

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

,这就是固定它。

+2

所以你的'UITextField'而不是'NSString'赋值! – mvds 2010-07-27 01:33:44

+1

顺便说一句,这就是为什么我在其他人的问题中经常看到的“nameText”的文本字段命名模式在Stack Overflow上是一个坏主意。 – 2010-07-27 03:41:23

+0

嗨,我可以找到'[tempValues setObject:textFieldBeingEdited forKey:tagAsNum]; ?????我在我的图表API中尝试过,但没有得到它。其中提到了哪些? PLZ指导我。谢谢 ' – iscavengers 2012-05-11 14:52:54

2

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

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

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

看起来isNaturallyRTL是一个(无证)NSString方法。至少NSString对此作出响应。

这可能意味着您将UITextField分配给某个变量,您应该在NSString中代替。

BTW:0x3947fe0是指针UITextField应该是一个NSString,所以如果你是完全失去了,试图找出其UITextField有地址(例如,通过哑NSLog("tf X: 0x%x",tfx);

+0

当我尝试运行时,它说tfx是未声明的。 – neuromancer 2010-07-27 00:27:30

+1

你应该为'tfx'放入你自己的'UITextField'变量(我不知道你是如何命名它们的) – mvds 2010-07-27 00:36:12