当一个对象的属性含有bool类型时,如果对象用init方法初始化,则它的bool属性是nil,并不会有默认值,在if判断是当做FALSE处理,在此情况下button.selected = tolet.wallLamp;如此赋值是没有任何意义的,button.selected始终是FALSE
如上执行,每次按钮点击时改变选择状态,初始如果采用button.selected = tolet.wallLamp;而tolet.wallLamp为nil,则它的selected永远是FALSE,导致下方的判断一直执行else
sharedDMCore.tolet.sPA = button.isSelected ? FALSE:TRUE;
此代码中button.isSelected ? FALSE:TRUE;始终返回nil,而不是后面两个值,按钮多次点击,它的sharedDMCore.tolet.sPA和button.isSelected的值一直是nil,不会有任何改变