-1
問題再對比我覺得不好意思問這個,但它看起來像是我需要了解:基本的Objective-C中的if語句
爲什麼會出現這種評估爲真? (如果我投它爲int它正確地計算爲false)
NSString *var1 = @"ABC";
NSString *var2 = @"ABCD";
if (([var1 length] - [var2 length]) > 2) NSLog(@"-1 > 2");
問題再對比我覺得不好意思問這個,但它看起來像是我需要了解:基本的Objective-C中的if語句
爲什麼會出現這種評估爲真? (如果我投它爲int它正確地計算爲false)
NSString *var1 = @"ABC";
NSString *var2 = @"ABCD";
if (([var1 length] - [var2 length]) > 2) NSLog(@"-1 > 2");
length
是無符號。
參見docs:
length
Returns the number of Unicode characters in the receiver.
- (NSUInteger)length
Return Value
The number of Unicode characters in the receiver.
嘗試:\t如果(((int)的[VAR1長度] - (int)的[VAR2長度])> 2)的NSLog(@ 「 - 1> 2」); – Rob 2009-09-26 15:51:26
或'if([var1 length]>(2 + [var2 length]))'以避免減法。看看馬!我在現實世界中使用了代數! (當然,理論上,你必須處理溢出,但不現實。) – kperryua 2009-09-26 16:06:21