为什么我的UILabel无法识别“isEqualToString:”?

时间:2011-12-02 08:45:45

标签: iphone objective-c ios xcode uilabel

  

可能重复:
  How can I check if a UILabel's value is more than 0 in an if statement?

为什么以下代码不起作用?

    if([Period2 isEqualToString:@"PSHEEC"])
    {

        NSLog(@"TEST");

    }

我收到此错误:

  

2011-12-02 08:45:52.579 iDHSB [7605:707] - [UILabel isEqualToString:]:   无法识别的选择器发送到实例0x4884c50 2011-12-02   08:45:52.581 iDHSB [7605:707] *由于未被捕获而终止应用程序   异常'NSInvalidArgumentException',原因:' - [UILabel   isEqualToString:]:无法识别的选择器发送到实例0x4884c50'   * 第一次抛出调用堆栈:(0x323e28bf 0x35cfa1e5 0x323e5acb 0x323e4945 0x3233f680 0x3152b191 0x9c905 0x316cf871 0x323e5814   0x323407e1 0x323403ff 0x34767e5b 0x323e4ab3 0x3233f680 0x323e5814   0x323407e1 0x33dcb43d 0x33dde8dd 0x323b6b03 0x323b62cf 0x323b5075   0x323384d5 0x3233839d 0x378b7439 0x315558e1 0x2d77 0x27c0)终止   调用抛出异常[切换到进程7171线程0x1c03]   (GDB)

4 个答案:

答案 0 :(得分:2)

您获得的错误可能是由于内存管理问题,Period2的指针不再指向您的字符串,现在指向某个标签。确保你已正确保留它。

另一方面,变量,属性,方法不应以大写字母开头,如果标签是属性,则应使用self.period2

答案 1 :(得分:1)

如果期间2是您的标签使用...

[period2.text isEqualToString:@"PSHEEC"]

答案 2 :(得分:0)

可能会有所帮助

NSString *str = label.text;
if([str isEqualToString:@"PSHEEC"])
{
NSLog(@"Equal");
}
else
{
NSLog(@"Not Equal");

}

答案 3 :(得分:0)

什么是Period2?你不能用那种方式测试等价。如果要测试字符串等效性,则需要执行以下操作:

(假设Period2是NSString)

if ([Period2 isEqualToString:@"PSHEEC]) {
    NSLog(@"They are equal.");
}