if-statement with&&操作员检查第二个值?

时间:2013-01-15 15:28:03

标签: ios objective-c if-statement operators

if-statement && operator如果第一个参数为false / NO,是否会检查第二个参数?

以下是否能够崩溃?

NSDictionary *someRemoteData = [rawJson valueForKey:@"data"];
if( [someRemoteData isKindOfClass:[NSDictionary class]] && someRemoteData.count > 0 ){
    //..do something
}

请不要简单的是或否答案,但要解释原因。

2 个答案:

答案 0 :(得分:3)

Objective-C使用lazy evaluation,这意味着在您的情况下只评估左操作数。

答案 1 :(得分:0)

不,它没有。如果第一个语句失败,则永远不会检查第二个语句,例如,您可以执行此操作(ArrayList != null && ArrayList.size() > 0),如果未初始化变量,您将永远不会收到错误。