Ios 将NSUInteger分配给UIButton enabled属性在具有32位体系结构的设备中不起作用

Ios 将NSUInteger分配给UIButton enabled属性在具有32位体系结构的设备中不起作用,ios,Ios,在32位架构的设备中遇到一个奇怪的错误, 代码如下: - (void)textViewDidChange:(UITextView *)textView { self.button.enabled = textView.text.length; } 因此,每当我将长度不为1的文本粘贴到textView中时, (这是为了模仿第三方键盘的行为),按钮将不会启用 您可以使用它来复制错误 我读过相关的帖子,比如,但是这个案例不同 请告诉我为什么它在这里不起作用。不要认为它是一个bug。将其视为您

在32位架构的设备中遇到一个奇怪的错误, 代码如下:

- (void)textViewDidChange:(UITextView *)textView {
    self.button.enabled = textView.text.length;
}
因此,每当我将长度不为1的文本粘贴到textView中时, (这是为了模仿第三方键盘的行为),按钮将不会启用

您可以使用它来复制错误

我读过相关的帖子,比如,但是这个案例不同


请告诉我为什么它在这里不起作用。

不要认为它是一个bug。将其视为您的代码错误。这句话太可怕了:

self.button.enabled = textView.text.length;
你试图把一个数字误用为BOOL。因此,您假设任何非零数字都与
YES
相同。这是一个错误的假设。别再那样写代码了。这样写:

self.button.enabled = (textView.text.length > 0);
那样的话,这个笨蛋真的是个笨蛋