isEqual语句类型?

时间:2015-02-07 05:19:19

标签: ios objective-c xcode macos

我在我的应用中进行了一些比较,最近发现了这样的比较类型:

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

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

1 个答案:

答案 0 :(得分:0)

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

来执行此操作

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

您可以覆盖子类中的isEqual:,以确定它何时是" true"通过将它与您想要的任何变量或一系列变量进行比较。

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

因此,为了使您的代码按照我的意图工作,您会写:

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

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

指定一些东西......

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