以下比较均评估为真:
1)
@"foo" == @"foo";
Run Code Online (Sandbox Code Playgroud)
2)
NSString *myString1 = @"foo";
NSString *myString2 = @"foo";
myString1 == myString2;
Run Code Online (Sandbox Code Playgroud)
但是,肯定有时候NSString使用等于运算符无法比较两个s,[myString1 isEqualToString:myString2]而是需要它.有人可以对此有所了解吗?
看起来像一个非常简单的IF语句有问题,这里是代码:
NSString * lowerCaseSubject = [_subjectParameter lowercaseString];
NSString * subjectPriceString = nil;
if (_subjectParameter) {
for (int p=0; p < arr.count; p++) {
subjectPriceString = [arr[p] valueForKeyPath: @"name"];
if (subjectPriceString == lowerCaseSubject) {
float price = [[arr[p] valueForKeyPath: @"pricePerHour"]floatValue];
priceLabel.text = [NSString stringWithFormat:@"%.0f", price];
}
}
}else{
Run Code Online (Sandbox Code Playgroud)
我正在调试并发现下面的IF语句永远不会设置为true,因此它后面的语句永远不会执行:
if (subjectPriceString == lowerCaseSubject) {
Run Code Online (Sandbox Code Playgroud)
这,尽管以下字段值显示:
一直试图修复多年,没有在哪里,谁能看到我在这里失踪的东西?谢谢