Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 为什么我的UILabel无法识别“IsequalString:”?_Iphone_Objective C_Ios_Xcode_Uilabel - Fatal编程技术网

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

Iphone 为什么我的UILabel无法识别“IsequalString:”?,iphone,objective-c,ios,xcode,uilabel,Iphone,Objective C,Ios,Xcode,Uilabel,可能重复: 为什么下面的代码不起作用 if([Period2 isEqualToString:@"PSHEEC"]) { NSLog(@"TEST"); } 我得到这个错误: 2011-12-02 08:45:52.579 iDHSB[7605:707]-[UILabel IsequalString:]: 已将无法识别的选择器发送到实例0x4884c50 2011-12-02 08:45:52.581 iDHSB[7605:707]*由于未捕获而终

可能重复:

为什么下面的代码不起作用

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

        NSLog(@"TEST");

    }
我得到这个错误:

2011-12-02 08:45:52.579 iDHSB[7605:707]-[UILabel IsequalString:]: 已将无法识别的选择器发送到实例0x4884c50 2011-12-02 08:45:52.581 iDHSB[7605:707]*由于未捕获而终止应用程序 异常“NSInvalidArgumentException”,原因:'-[UILabel] isEqualToString::无法识别的选择器发送到实例0x4884c50' *第一次抛出调用堆栈:0x323e28bf 0x35cfa1e5 0x323E5945 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


如果period2是您的标签,请使用

[period2.text isEqualToString:@"PSHEEC"]
这可能会有帮助

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

}

您收到的错误可能是由于内存管理问题,Period2的指针不再指向您的字符串,而是指向某个标签。确保您正确地保留了它


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

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

假设Period2是一个NSString

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

但是Period1是一个NSString…:梭利输入错误,请重新阅读我的问题是的,我明白,这是内存管理错误。请看我的答案,我已经重写了它。在给定的异常描述中,它清楚地提到了…由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UILabel isEqualToString:]:发送到实例0x4884c50的未识别选择器基于此,Period2是UILabel而不是NSString!”!这就是错误的原因,Period2是UILabel的NSString…这是一个合理的答案,但问题编辑使其不相关。打印Period2值可以检查字符串是否正确