我正在做一个注册模块,其中包括3个不同的页面。第一页个人详细信息,第2页登录详细信息和第3页付款详细信息。注册时,第1页和第2页是必填项,但第3页不是。第3页有6个文本字段。但是,第3页有一个验证,即用户必须输入所有值或必须将所有字段留空。要做到这一点,一个逻辑异或运算是必要的,我不能找到如何实现。帮助我。我现在使用以下代码是错误的
if((txtCardNumber.text!.isEmpty && txtCardType.text!.isEmpty && txtNameofCard.text!.isEmpty && txtMonthExpriy.text!.isEmpty && txtYearExpiry.text!.isEmpty && txtPayment.text!.isEmpty) == false )
我使用的是Swift 2.0 xcode 7.1.1,因此^
无法正常工作
对此,谁能给予一个合乎逻辑解决办法或其他解决办法?
2条答案
按热度按时间czfnxgou1#
你不需要使用xor操作符就可以完成这个操作。如果你的所有文本字段都在一个数组中,这应该很简单。你可以在代码中创建它,也可以使用
IBOutletCollection
从你的故事板/xib中创建它。这段代码通过对文本字段调用
isEmpty
得到所有的Bools
,并将它们放入一个Set
中。如果它们都为真或都为假,则该集合将只包含一个值,如果它们都为真/假,则它将包含两个值。xn1cxnb42#
我不会用XOR来解决这个问题;我知道它们确实为你的特定问题提供了答案,但一般来说,我不会把它们用于高级逻辑。
1.他们很难理解;它们代表了一系列的解决方案,这些解决方案都是真的,都是假的,但是大多数阅读你代码的人不会理解这一点,尤其是当你第一次看代码的时候。
1.如果你想要求6个都是空的或者只填充5个,你会怎么修改这个逻辑呢?
一般来说,大量的
if
语句很快就会变得难以理解。这是我想出的解决办法: