测试一下这段代码:
- (void)test { NSLog(@"this is an attribut: %d", anAttribute); for (int i = 0; i < 5; i++) { BOOL isTest1; if (isTest1 == NO) { NSLog(@"%d: NO", isTest1); } if (isTest1 == false) { NSLog(@"%d: false", isTest1); } if (i == 2) { isTest1 = YES; } NSLog(@"isTest1: %d", isTest1); } NSLog(@"/"); for (int i = 0; i < 5; i++) { bool isTest2; if (isTest2 == NO) { NSLog(@"%d: NO", isTest2); } if (isTest2 == false) { NSLog(@"%d: false", isTest2); } if (i == 2) { isTest2 = YES; } NSLog(@"isTest2: %d", isTest2); } NSLog(@"/"); for (int i = 0; i < 5; i++) { BOOL isTest3 = YES; if (i == 2) { isTest3 = NO; } NSLog(@"isTest3: %d", isTest3); } NSLog(@"/"); for (int i = 0; i < 5; i++) { BOOL isTest4 = NO; if (i == 2) { isTest4 = YES; } NSLog(@"isTest4: %d", isTest4); } }
测试过这段代码之后,你可能对 bool 和 BOOL 会有不同的认识。
结论是,一定要养成初始化变量的习惯。