isEqual 语句类型?

isEqual statement type?

我正在我的应用程序中做一些比较,最近发现了这样的比较类型:

[[self.someString isEqual: @"one"] ? @"two" : @"one"]; 

这考虑了什么类型的比较?我试图添加另一个比较,但显然它不适合超过两三个。

您似乎正在尝试比较字符串。您可以通过键入 isEqualToString:

您正在做的是查看您的对象是否与您刚刚 initialized 的字符串对象相同。 (这永远不会是真的,因为它不是同一个对象。一方面,它有一个新的内存位置。)

您可以在您的子类中覆盖 isEqual:,通过将它与您想要的任何变量或变量系列进行比较来说明它何时为“true”。

最后,"(if this is true) ? (Do this) : (otherwise do this)" 被称为三元运算符,我经常使用它,因为它是一个很好的 shorthand。它的功能正如上一句所述

因此,为了让您的代码按照我认为的预期工作,您可以这样写:

要在日志中打印出来...

[self.someString isEqualToString: @"one"] ? NSLog(@"two") : NSLog(@"one"); 

要分配一些东西...

[self.someString isEqualToString: @"one"] ? self.anotherString = @"two" : self.anotherString = @"one";