if条件中德摩根定律运用:
定律内容:
1. 非(P 且 Q) = (非 P) 或 (非 Q) 字面意思:都得行+反面=有个不行
2. 非(P 或 Q) = (非 P) 且 (非 Q) 字面意思:有个行+方面= 都得不行
eg:计算器输入了一个字符,范围在Digits = @”0123456789.”里面,if条件=如果是period并且当前显示器数字已经有period了,那么不处理:
if (!([input_character isEqualToString:Period]&& ([self.display rangeOfString:Period].length))) {
[self.display appendString:input_character];
}
等价与
if (![input_character isEqualToString: (NSString *)Period] || [self.display rangeOfString: (NSString *)Period].location == NSNotFound) {
[self.display appendString:input_character];
}
第一种写法是直接逻辑思路,但是运用德摩根的思想,第二种写法和思路都清晰了很多;
ps:其他逻辑运算定律:分配律
开发模式
工程中VC、View等模块可以创建一些Base类,其中base group中的类规定view、vc等一些基本行为、外观;