我有以下编码,我确保如果条件为TRUE,但我无法进入它。 我通过使用NSLog将步骤前后的值和长度写入if语句来证明它,两者都等于“test”和length = 4,任何人都可以解决我的问题吗?
请看下面链接哪个是我的大写屏幕,请帮助,谢谢!!!!
http://postimage.org/image/rvtxcq1g1/
NSLog(@"Before value=%@, lenght=%i", txtMaster.text, [txtMaster.text length]);
if (txtMaster.text == @"test")
{
NSLog(@"%@\n", @"Success");
}
NSLog(@"After value=%@, lenght=%i", txtMaster.text, [txtMaster.text length]);
答案 0 :(得分:5)
使用==
比较NSString
s比较字符串的指针值。这可能不是你想要的。相反,试试这个:
if([txtMaster.text isEqualToString:@"test"]) {
NSLog(@"Success!\n");
}
答案 1 :(得分:1)
可能你对指针有一些疑问。
@“test”返回一个指针,显示常量字符串在内存中的位置。
在极少数情况下@“test”和txtMaster.text相等(==)那么这意味着
请记住返回Objective-C对象的所有方法通常会返回对象上的指针。
我希望迷雾现在离开......